Perl FTP Script für automatische Dateitransfers

Vor einiger Zeit hab ich mal ein Perl FTP Script geschrieben um diverse FTP Transfers in der Firma zu automatisieren.

Die Verbindungseinstellungen zu den diversen abzuarbeitenden FTP Servern stehen in MySQL Datenbanksätzen und sind so per PHP pflegbar.

Da diese Woche wer nach einer ähnlichen Lösung gefragt hat, ist mir wieder eingefallen, dass ich das Script eigentlich schon damals hab veröffentlichen wollen.

Was das Script macht?

Das Programm dient dazu bestimmte Daten vom lokalen Rechner auf ferne FTP Server zu laden oder bestimmte
Dateien von einem externen FTP Server auf den lokalen Rechner zu holen.
Man kann z.B. angeben dass nur Dateien mit „OFF“ am Anfang und „.TXT“ am Ende geholt oder geschoben
werden sollen.
Oder man kann nur eine bestimmte Datei holen oder hochladen.
Diese Einstellungen sind in einer MySQL Datenbank abgelegt die vom Programm Satz für Satz abgearbeitet
wird.

Funktionsweise:

  • Alle 10 Minuten läuft ein Cronjob an der das ftpscript2 mit dem Parameter „-m0“ startet.
  • Das Script verbindet sich zum MySQL Server und holt sich einen Datensatz.
    Wenn es ein GET Satz ist werden die Routinen zum herunterladen ausgeführt
    Wenn es ein PUT Satz ist werden die Routinen zum hochladen ausgeführt.
  • In den Sätzen stehen alle Einstellungen für den ftp connect drin und auch die Verzeichnisse aus denen
    geladen/heruntergeladen wird.

Wenn man einen bestimmten Satz abarbeiten will geht das mit
$ ftpscript2 –sFASZKE
Wobei man für FASZKE die jeweilige Satzkennung aus der Datenbank angibt.

 

Das Script lief 2-3 Jahre lang problemlos bei uns und hat täglich mehrere hundert Dateien von Kunden und zu Kunden hin übertragen.

Runterladen kann man es inkl. Doku und manpages hier: ftpscript2.zip