Perl und FTP via Proxy
Prblamstellung: Mit Perl und FTP via Proxy
#!/usr/bin/perl # Hagen Gloetter 04.06.2009 use Net::FTP; use File::Basename; use Time::localtime; use Net::FTP; # Einbinden des FTP-Moduls $debug=""; $QuellServer = "5.123.123.123"; # Adresse des FTP-Servers (Hostname oder IP-Adresse) $ZielServer="5.123.123.124"; # Adresse des FTP-Servers (Hostname oder IP-Adresse) $username="egal"; # Benutzername $password="kommt aus ~/.netrc"; # Passwort $remotePfad = "/srv/ftp/transfer/"; # Pfad, wo die Datei liegt $Datei="backup.zip"; # Name der Datei $lokalPfad="/srv/ftp/transfer"; $proxyServer="ftp-proxy-company.com"; $proxyFwType = 5; # # ftp->get von $QuellServer # # Erzeugen des FTP-Objektes Intitialisierungsparameter = Adresse des FTP-Servers $ftp=Net::FTP->new($QuellServer, Debug=>0) || die "Keine Verbindung mit $QuellServer ". $ftp->message . "\n"; # Einloggen auf FTP-Server ohne User-Name und Passwort $ftp->login() || die "Fehler beim einloggen: ". $ftp->message . "\n"; # Damit der Login ohne User und Passwort funktioniert, # muessen beide Parameter in .netrc im home des Nutzers angelegt sein # ansonsten einfach folgende Zeile verwenden #$ftp->login($username, $password) || die "Fehler beim einloggen: ". $ftp->message . "\n"; $ftp->binary(); $ftp->cwd("$remotePfad"); # cwd: Verzeichnis wechseln $ftp->get("$Datei","$lokalPfad/$Datei") || die "Fehler beim herunterladen von $Datei auf $QuellServer nach $lokalPfad ". $ftp->message . "\n"; $ftp->quit() || die "Fehler beim ausloggen von $QuellServer.\n\n"; # Abmelden vom FTP-Server # ftp->put auf $ZielServer $ftp = Net::FTP->new($ZielServer, Timeout => 360, FirewallType => "$proxyFwType", Firewall => "$proxyServer", Debug => $debug ) or die "Keine Verbindung mit $ZielServer ". $ftp->message . "\n"; $ftp->login() || die "Fehler beim einloggen: ". $ftp->message . "\n"; $ftp->binary(); # Eeigentlich besser, wenn man die korrupte Datei loescht #$ftp->put("$lokalPfad/$Datei","$Datei") #or do { # print "Konnte Datei $delta nicht zum FTP-Server senden! ". $ftp->message . "\n"; # $ftp->delete("$Datei"); #}; $ftp->put("$lokalPfad/$Datei","$Datei") || die "Fehler beim hochladen von $Datei auf $QuellServer nach $lokalPfad ". $ftp->message . "\n"; $ftp->quit() || die "Fehler beim ausloggen von $QuellServer.\n\n"; # Abmelden vom FTP-Server exit;
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!