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!