Ich stand diese Woche bei einem Kunden vor dem Problem, dass von einem FTP Server regelmässig (alle 30 Sekunden) Daten herunter geladen und die Quelle gelöscht werden müssen.
Mit dem normalen DOS FTP Befehl hätte man das theoretisch auch umsetzen können, ich habe mich aber trotzdem für Cygwin und lftp entschlossen.
Die Installation von Cygwin kann man auf vielen Seiten nachlesen. Benötigt habe ich nur als zusätzliches Paket lftp.
Hier nun das Script:
#!/bin/bash # Autor: Knut Herter # Datum: 14.9.2023 # Bemerkung # # Dies Script lädt mittels lftp Mecom Dateien herunter und stellt diese # in einem lokalen Ordner für den "Newsline-Recorder" bereit. # Mit diesem werden die herunter geladenen Dateien für Newsline # aufbereitet # # Konfiguration ftpServer="[Dein FTO-Server]" ftpUser="[Dein Benutzername]" ftpPassword="[Dein Passwort]" remoteFolder="/" localFolder="/cygdrive/f/Mecom" cd $localFolder while [ true ] ; do clear echo Beginne Verarbeitung lftp <<EOF open ftp://$ftpUser:$ftpPassword@$ftpServer cd $remoteFolder mirror --verbose --Remove-source-files bye EOF impanz=$(find $localFolder -type f | wc -l) echo ******************************************** echo Es stehen $impanz Dateien fuer den Import echo durch den Mecom-Recorder bereit echo ******************************************** secs=$((1 * 30)) while [ $secs -gt 0 ]; do echo -ne "$secs3[0K\r" sleep 1 : $((secs--)) done done
Die obigen Variablem müssen natürlich an die eigenen Gegebenheiten angepasst werden.