Linux-Shell-Skript das Daten von einem FTP-Server abholt

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

  1. FTP Server Details: Hier geben Sie die Details Ihres FTP-Servers, Benutzernamen, Passwort, das Remote-Verzeichnis und das lokale Verzeichnis an.
  2. Log File: Pfad zur Log-Datei, in der Nachrichten protokolliert werden.
  3. log_message Function: Funktion, die Zeitstempel und Nachrichten in die Log-Datei schreibt.
  4. Start the script: Beginn des Skripts mit einer Log-Nachricht.
  5. Create local directory: Erstellt das lokale Verzeichnis, wenn es nicht existiert, und protokolliert diese Aktion.
  6. 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.
  7. 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.

Schreibe einen Kommentar

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