Hier ist ein Linux-Shell-Skript, das Daten von einem FTP-Server abholt. Das Skript verwendet ftp
oder lftp
, um die Dateien herunterzuladen. In diesem Beispiel verwenden wir lftp
, da es erweiterte Funktionen und bessere Fehlerbehandlung bietet.
Voraussetzungen
Stellen Sie sicher, dass lftp
auf Ihrem System installiert ist. Sie können lftp
installieren, indem Sie den folgenden Befehl ausführen:
sudo apt install lftp -y
Skript
Speichern Sie das folgende Skript in einer Datei, z.B. ftp_download.sh
, und machen Sie es ausführbar:
chmod +x ftp_download.sh
ftp_download.sh
#!/bin/bash
# FTP Server Details
FTP_SERVER="ftp.example.com"
FTP_USERNAME="your_username"
FTP_PASSWORD="your_password"
FTP_REMOTE_DIR="/remote/directory"
LOCAL_DIR="/local/directory"
# Log File
LOG_FILE="/path/to/ftp_download.log"
# Function to log messages
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> $LOG_FILE
}
# Start the script
log_message "Starting FTP download script."
# Create local directory if it does not exist
if [ ! -d "$LOCAL_DIR" ]; then
mkdir -p "$LOCAL_DIR"
log_message "Created local directory $LOCAL_DIR."
fi
# Use lftp to download files
lftp -f "
open $FTP_SERVER
user $FTP_USERNAME $FTP_PASSWORD
lcd $LOCAL_DIR
cd $FTP_REMOTE_DIR
mget *
bye
" && log_message "Files downloaded successfully from $FTP_SERVER." || log_message "Failed to download files from $FTP_SERVER."
log_message "FTP download script finished."
Erklärung des Skripts
- FTP Server Details: Hier geben Sie die Details Ihres FTP-Servers, Benutzernamen, Passwort, das Remote-Verzeichnis und das lokale Verzeichnis an.
- Log File: Pfad zur Log-Datei, in der Nachrichten protokolliert werden.
- log_message Function: Funktion, die Zeitstempel und Nachrichten in die Log-Datei schreibt.
- Start the script: Beginn des Skripts mit einer Log-Nachricht.
- Create local directory: Erstellt das lokale Verzeichnis, wenn es nicht existiert, und protokolliert diese Aktion.
- lftp: Verbindet sich mit dem FTP-Server, meldet sich an, wechselt das Verzeichnis und lädt alle Dateien im Remote-Verzeichnis herunter. Erfolgs- oder Fehlernachrichten werden protokolliert.
- Finish the script: Beendet das Skript mit einer Log-Nachricht.
Ausführen des Skripts
Führen Sie das Skript aus, indem Sie den folgenden Befehl verwenden:
./ftp_download.sh
Hinweis
- Sicherheit: Das Speichern von Passwörtern in Klartextdateien ist unsicher. Ziehen Sie in Betracht, sicherere Methoden wie verschlüsselte Passwortspeicherung oder Umgebungsvariablen zu verwenden.
- Erweiterungen: Das Skript kann erweitert werden, um spezifischere Anforderungen zu erfüllen, wie z.B. das Herunterladen bestimmter Dateitypen oder das Löschen von Dateien nach dem Download.