Axigen-FTP Backup

  • Version 1.0 – Initial Text
    Version 1.1 – Update Shell-Script
    Version 1.2 - Update Recovery-Link


    Für alle, denen ein Backup per „filecopy“ täglich zu unsicher ist oder bei einem Disaster Recovery zu viel verloren geht, kann sich mithilfe es FTP-Backups per wget behelfen.
    Ich selbe habe nur 5 Tage meine Backups aufgehoben und hatte immer wieder das Problem, dass falls jemand mal eine Email oder ein Ordner gelöscht hat, ich nur noch ein Gesamtbackup zurückspielen konnte. Was praktisch unmöglich ist, da schließlich auch alle anderen damit betroffen sind.
    Deshalb habe ich mir folgendes ausgedacht. Vielleicht kann der Eine oder Andere damit was anfangen.


    Voraussetzung und Grundlage

    Code
    Betriebssystem         : SUSE Linux
    AXIGEN Lizenz          : inkl. FTP-Backup
    AXIGEN Version         : Egal
    WGET Version           : >1.x


    Backup Plan

    Code
    Full-Backup            : täglich 04:00 Uhr
    Differential           : jede volle Stunden
    
    
    
    
    backup: F    D    D    D    D    D    D    D    D    D    D    DP   F
            |----|----|----|----|----|----|----|----|----|----|----|----|
    time    4    6    8   10   12   14   16   18   20   22    0    2    4



    F : Full-Backup = Erstellen eines neuen Backup-Files & Sichern aller Daten
    D : Diffenential = Kopieren aller Änderungen in vorhandenes File.
    DP : Diffenential & Packen = gleiches wie Diffenential nur werden hier die Dateien gepackt und ein neues File kann begonnen werden.


    wget


    Das Herunterladen mit wget sollte ab diesen Zeitpunkt bekannt sein. Eine kurze Einführung:
    Mit wget Dateien herunterzuladen ist denkbar einfach. Anhand der Shell kann ich mit dem Befehl…

    Code
    wget http://www.irgendwo.de/pix/nette-frau.jpg


    …einfach eine Datei herunterladen.


    Umsetzung


    Um nun einen kompletten FTP Pfad herunter zu laden benötigt man jedoch ein paar Parameter:


    --ftp-user = Angabe des Benutzers für einen FTP Account (in diesem Fall halt „admin“)
    --ftp-password = Der Zugriff auf FTP braucht ein Passwort? Mit diesem Parameter wird dieses gesetzt
    --no-passive-ftp = Ein sehr wichtiger Befehl für wget um fehlerfrei auf den Axigen FTP zugreifen zu können. Mehr Infos? HIER
    --level = Gibt an für den nächsten Befehl, wie tief (recursive) er in die Ordnerstruktur gehen soll. 0 steht für grenzenlos 
    --recursive = lade auch alle Unterordner herunter. Wie tief, siehe level.


    Somit sieht der Befehl zum herunterladen so aus:

    Code
    wget --ftp-user=[Benutzer] --ftp-password=[Dein Passwort] --debug --no-passive-ftp --level=0 --recursive ftp://[Dein Server]:[Der Port]


    wget schmeißt nun alles, was er herunterlädt in das Verzeichnis, in dem dieser Befehl ausgeführt wird.


    Wer noch ein Protokoll-File schreiben möchte kann noch ein

    Code
    --output-file=/wo/hin/file.log

    anfügen oder statt output-file ein

    Code
    >>/wo/hin/file.log


    ACHTUNG: Aber bitte nur für das Fullbackup verwenden. Sonst platzt Dein Server bald :D


    Zum Speichern der Änderungen (Differential) ist nur ein Parameter mehr einzugeben

    Code
    --timestamping

    , der so viel bedeutet wie „Nur Dateien holen, die neuer als die lokalen Dateien sind“.


    Zusammenfassung / Full-backup


    1. In das Backupverzeichnis wechseln

    Code
    cd /mein/backup/verzeichnis


    2. Backup anstoßen

    Code
    wget --ftp-user=[Benutzer] --ftp-password=[Dein Passwort] --debug --no-passive-ftp --level=0 --recursive ftp://[Dein Server]:[Der Port]


    Kurze Zusammenfassung / Differential-backup:
    1. In das Backupverzeichnis wechseln

    Code
    cd /mein/backup/verzeichnis


    2. Backup anstoßen

    Code
    wget --ftp-user=[Benutzer] --ftp-password=[Dein Passwort] --debug --no-passive-ftp --level=0 --recursive --timestamping ftp://[Dein Server]:[Der Port]


    Shell-Script Beispiel



    Zum wiederherstellen der Mails habe ich einen neuen Beitrag geschrieben --> Axigen-FTP Recovery

  • Zitat


    Voraussetzung und Grundlage

    Code
    Betriebssystem         : SUSE Linux
    AXIGEN Lizenz          : inkl. FTP-Backup
    AXIGEN Version         : Egal
    WGET Version           : >1.x

    FYI: Läuft auch unter CentOS 5.4 & CentOS 5.5 wunderbar.


    Sehr schönes Script, danke.

  • Hier für alle die es benutzen möchten eine kleine Erweiterung zu meinem ersten Script.


    Änderung zur Version 1.0:

    • Abfrage beim Anlegen des Backup-Directories
    • Packen und Sichern der Backup-Files des Vortages
    • Integration einer Übertragen per NCFTP (muss installiert sein) zum externen Sichern


    Folgende Tools müssen vorhanden sein:

    • wget - Version egal
    • ncftpput - lässt sich auch als alleinstehende SW downloaden



    Der Eintrag in der crontab kann folgendermaßen aussehen, hier werden alle 6 Stunden die Änderungen vom Axigen gesaugt :


    Code
    0       */6     *       *       *       ~/some/where/axigen-backup.sh  >> /dev/null


    Kleiner Tip, stellt nicht im AXIGEN-Adminzugang unter "Backup & Restore" / "Use the TAR format to pack messages" ein ;)


    Schönen Gruß
    SkawoN