fbpx

Dateisystem Backup via FTP mit Python: Schritt-für-Schritt-Anleitung

Inhalt
    Add a header to begin generating the table of contents

    In der heutigen digitalen Welt ist Datensicherung ein unverzichtbares Element. Die Vorstellung, wertvolle Daten zu verlieren, ist beängstigend. Glücklicherweise gibt es Methoden, um Deine Daten sicher zu speichern. Und dafür brauchst Du nicht einmal irgendwelche teuren Tools zu kaufen! Hier zeige ich Dir, wie Du mit Python ein automatisiertes Dateisystem Backup via FTP erstellst. Wir werden Schritt für Schritt vorgehen und am Ende kannst Du einfach darauf aufbauen.


    Warum ein Backup via FTP?

    FTP (File Transfer Protocol) ist eine der ältesten und zuverlässigsten Methoden zum Übertragen von Dateien zwischen Computern im Netzwerk. Ein Backup via FTP bietet zahlreiche Vorteile:

    • Sicherheit: Deine Daten werden auf einem entfernten Server gespeichert, was sie vor lokalen Ausfällen schützt.
    • Automatisierung: Mit Python kannst Du den Backup-Prozess vollständig automatisieren.
    • Effizienz: Große Datenmengen können schnell und effizient übertragen werden.

    Stell Dir vor, Du arbeitest an einem wichtigen Projekt und plötzlich stürzt Dein Computer ab. Wenn Du regelmäßige FTP-Backups erstellst, kannst Du Deine Daten problemlos wiederherstellen und weiterarbeiten.


    Schritt-für-Schritt-Anleitung

    1. Vorbereitung

    Python liefert alle benötigten Bibliotheken direkt im Standard mit. Das sind ftplib für die FTP-Verbindung und os für den Zugriff auf das Dateisystem.

    2. Verbindung zum FTP-Server herstellen

    Als Erstes brauchen wir eine Verbindung zu unserem FTP-Server. Dafür benötigen wir die FTP-Serveradresse, den Benutzernamen und das Passwort.

    import ftplib
    
    ftp_server = "ftp.example.com"
    ftp_username = "your_username"
    ftp_password = "your_password"
    
    def connect_ftp(server, username, password):
        ftp = ftplib.FTP(server)
        ftp.login(user=username, passwd=password)
        return ftp
    
    ftp = connect_ftp(ftp_server, ftp_username, ftp_password)

    3. Dateien durchsuchen und hochladen

    Als Nächstes erstellen wir eine Funktion, die die Dateien durchgeht und auf den FTP-Server hochlädt. Wir nutzen die os-Bibliothek, um durch das Dateisystem zu navigieren.

    import os
    
    def upload_files(ftp, path):
        for root, dirs, files in os.walk(path):
            for filename in files:
                local_path = os.path.join(root, filename)
                remote_path = os.path.relpath(local_path, path)
                with open(local_path, 'rb') as file:
                    ftp.storbinary(f'STOR {remote_path}', file)
    
    local_directory = "/pfad/zu/deinen/daten"
    upload_files(ftp, local_directory)

    4. Fehlerbehandlung

    Es ist wichtig, Fehler abzufangen, um sicherzustellen, dass der Backup-Prozess nicht bei der ersten Schwierigkeit abbricht.

    def safe_upload_files(ftp, path):
        for root, dirs, files in os.walk(path):
            for filename in files:
                local_path = os.path.join(root, filename)
                remote_path = os.path.relpath(local_path, path)
                try:
                    with open(local_path, 'rb') as file:
                        ftp.storbinary(f'STOR {remote_path}', file)
                except Exception as e:
                    print(f"Fehler beim Hochladen von {local_path}: {e}")
    
    safe_upload_files(ftp, local_directory)

    5. Automatisierung des Backups

    Um den Backup-Prozess zu automatisieren, können wir einen Cron-Job (unter Unix-Systemen) oder eine geplante Aufgabe (unter Windows) einrichten. Hier ist ein Beispiel, wie Du dies unter Unix (Linux / MacOS) einrichten kannst:

    crontab -e

    Füge dann die folgende Zeile hinzu, um das Backup-Skript jeden Tag um 2 Uhr morgens auszuführen:

    0 2 * * * /usr/bin/python3 /path/to/your_script.py

    Zusammenfassung

    So kannst Du mit Python ein automatisiertes Dateisystem-Backup via FTP erstellen. Wir haben die Vorteile eines FTP-Backups besprochen, die erforderlichen Schritte durchgegangen und ein Python-Skript erstellt, das den gesamten Prozess übernimmt. Durch die Automatisierung kannst Du sicherstellen, dass Deine wichtigen Daten regelmäßig gesichert werden, ohne dass Du manuell eingreifen musst.

    Bonus Tipp

    Das Skript kannst Du jetzt natürlich noch erweitern. Dazu könntest Du die Daten in eine Zip-Datei packen, oder einen Hash aus dem Inhalt jeder Datei erstellen, um Duplikate direkt zu entfernen.

    Hier findest Du weitere Python-Automatisierungen

    Python-Dokumentation zu ftplib


    Du fragst Dich vielleicht, warum wir die os.walk-Methode verwenden. Diese Methode durchsucht rekursiv alle Unterverzeichnisse und Dateien in einem angegebenen Verzeichnis. Dies ist besonders nützlich, wenn Dein Backup-Verzeichnis eine komplexe Struktur hat und Du sicherstellen möchtest, dass alle Dateien hochgeladen werden.


    Mit diesem Wissen bist Du gut gerüstet, um Deine Daten sicher und zuverlässig zu sichern. Viel Erfolg bei Deinen Backup-Projekten!

    https://youtu.be/n8kOpAhmcuM
    Picture of Ingo Janßen

    Ingo Janßen

    Lerne nicht einfach programmieren. Löse Probleme und automatisiere Aufgaben!

    Das könnte dich auch interessieren

    Nach oben scrollen
    Newsletter Popup Form

    Keine Inhalte mehr verpassen?

    Melde dich direkt für den "Code-Kompass" an und erhalte nützliche Tipps und Informationen direkt in deinen Posteingang.