#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use v5.10; my $debug = defined; my $use_tls = defined; print "INC:\n".join("\n",@INC); print "\n\n"; print "Version Net::FTP::File: ".$Net::FTP::File::VERSION."\n"; print "Version Net::FTP: ".$Net::FTP::VERSION."\n"; print "Version IO::Socket::SSL: ".$IO::Socket::SSL::VERSION."\n"; print "Version IO::Socket::IP: ".$IO::Socket::IP::VERSION."\n"; print "Version IO::Handle: ".$IO::Handle::VERSION."\n"; print "Version Net::SSLeay: ".$Net::SSLeay::VERSION."\n"; use IO::Socket::SSL 2.012 qw(SSL_VERIFY_CLIENT_ONCE); if (defined $debug) {$IO::Socket::SSL::DEBUG = 3} use Net::FTP 3.05; use Net::FTP::File; my $ftp = Net::FTP->new( '*****', Debug => (defined $debug ? 1 : 0), Passive => 1, Timeout => 15, SSL_ca_file => 'test_ftp_zertifikat.pem', ) or die 'Fehler '.$@.' in '.__LINE__; if (defined $use_tls) { $ftp->starttls() or die "Fehler in ".__LINE__." wegen '$@'"; } $ftp->login('*****','*****') or die 'Fehler in '.__LINE__; if (!$ftp->isdir('/tmp')) { $ftp->mkdir('/tmp',1) or die 'Fehler in '.__LINE__; $ftp->site('CHMOD 0755 tmp') or die 'Fehler in '.__LINE__; } $ftp->cwd('/tmp') or die 'Fehler in '.__LINE__; my $hash_ref = $ftp->dir(); say "dir Ergebnis:\n".Dumper($hash_ref); $ftp->binary or die 'Fehler in '.__LINE__; for (my $z = 1; $z <= 40; $z ++) { say "\n\n\nDurchlauf $z:"; if ($ftp->isfile('testdatei.png')) { $ftp->delete('testdatei.png') or die 'Fehler in '.__LINE__; } if (!$ftp->isfile('testdatei.png')) { $ftp->put('test_ftp_datei.png','testdatei.png') or die 'Fehler in '.__LINE__; $ftp->site('CHMOD 0755 testdatei.png') or die 'Fehler in '.__LINE__; $hash_ref = $ftp->dir(); say "dir Ergebnis:\n".Dumper($hash_ref); $ftp->get('testdatei.png','test_ftp_datei.png') or die 'Fehler in '.__LINE__; say "dir Ergebnis:\n".Dumper($hash_ref); } else { say "Datei löschen fehlgeschlagen!"; } }