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;

 

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert