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
Betriebssystem : SUSE Linux
AXIGEN Lizenz : inkl. FTP-Backup
AXIGEN Version : Egal
WGET Version : >1.x
Backup Plan
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…
…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:
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
anfügen oder statt output-file ein
ACHTUNG: Aber bitte nur für das Fullbackup verwenden. Sonst platzt Dein Server bald
Zum Speichern der Änderungen (Differential) ist nur ein Parameter mehr einzugeben
, der so viel bedeutet wie „Nur Dateien holen, die neuer als die lokalen Dateien sind“.
Zusammenfassung / Full-backup
1. In das Backupverzeichnis wechseln
2. Backup anstoßen
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
2. Backup anstoßen
wget --ftp-user=[Benutzer] --ftp-password=[Dein Passwort] --debug --no-passive-ftp --level=0 --recursive --timestamping ftp://[Dein Server]:[Der Port]
Shell-Script Beispiel
#!/bin/bash
#############################################
# Server Sicherungs-Script (c) SkawoN 2010 #
# Full-Backup and Diff-Backup #
#############################################
# Pfade
backup_dir=/srv/ftp/axibackup
# Zeitformat und Name des Logfiles
tod=`date +%y%m%d`
# AXIGEN FTP Backup (Mailsever)
mail_user=admin
mail_pw=[PASSWORT!!!]
mail_server=127.0.0.1
mail_port=21
mail_prefix="--no-passive-ftp --level=0 --recursive --timestamping"
# Erstellen eines Unterordners zum heutigen Backup
mkdir $backup_dir/$tod
cd $backup_dir/$tod
# Backup per FTP deaktiviert
wget --ftp-user=$mail_user --ftp-password=$mail_pw $mail_prefix ftp://$mail_server:$mail_port
Alles anzeigen
Zum wiederherstellen der Mails habe ich einen neuen Beitrag geschrieben --> Axigen-FTP Recovery