Backup: Automatische Skripte mit rsync: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 5: | Zeile 5: | ||
Bei Windows braucht man cygwin. Zusätzlich zur normalen cygwin-Paketauswahl folgende Pakete anwählen: | Bei Windows braucht man cygwin. Zusätzlich zur normalen cygwin-Paketauswahl folgende Pakete anwählen: | ||
Net --> rsync, openssh | Net --> rsync, openssh | ||
Falls der Quellrechner auf Windows laeuft, muss dann noch ein openssh Server eingerichtet werden | Falls der Quellrechner auf Windows laeuft, muss dann noch ein openssh Server eingerichtet werden (siehe hier: [[Einrichtung des Cygwin-SSH-Servers]]). | ||
Version vom 25. Februar 2009, 17:46 Uhr
Voraussetzungen
Man braucht auf den Quell- und Zielrechnern jeweils rsync. Bei Linux ist das in der Standardinstallation enthalten. Bei Windows braucht man cygwin. Zusätzlich zur normalen cygwin-Paketauswahl folgende Pakete anwählen:
Net --> rsync, openssh
Falls der Quellrechner auf Windows laeuft, muss dann noch ein openssh Server eingerichtet werden (siehe hier: Einrichtung des Cygwin-SSH-Servers).
Erstellen des eigentlichen Backupscripts
rsync kann bequem Verzeichnisse synchronisieren. Die Scripte sind ascii-Textfiles.
Beispielscript:
Das folgende Script läuft auf der alten Kiste und sorgt für das automatische Backup des home-Bereichs der acid1.
#!/bin/bash # acid1 home-directory autobackup rsync -aul -e ssh --exclude-from=/home/datenbackups/acid_rsync_exclude.txt --backup --backup-dir=/home/datenbackups/acid1_backup --delete acid1:/home/ /home/datenbackups/acid1/home/
Bei Unklarheiten hilft die Kommandozeile:
rsync --help
oder ausfuehrlicher:
man rsync
Fuer uns besonders wichtig waren folgende Optionen:
-a (Dateiattribute bleiben bestehen) -u (update: nur aeltere Dateien überschreiben) --delete (Dateien, die auf dem Quellrechner geloescht wurden, auch auf dem Ziel loeschen) --backup (Dateien, die auf dem Ziel mit --delete geloescht werden, werden in ein Backupverzeichnis verschoben) --backup-dir (das besagte Backupverzeichnis) --exclude-from (Datei, die angibt, was NICHT synchronisiert werden soll, z.B. Gaussian Checkpoints; siehe acid_rsync_exclude.txt)
Nach der Erstellung muessen die Scripts mit chmod ausfuehrbar gemacht werden.
Einrichtung des cron-Dienstes
Der cron-Dienst sorgt dafuer, dass die Backupscripts regelmaessig nach Zeitplan ausgefuehrt werden. Der Zeitplan wird in eine Datei namens crontab geschrieben. Eine bestehende crontab kann man mit folgendem Befehl anzeigen:
crontab -l
Den Editiermodus startet man mit dem Befehl:
crontab -e
Es oeffnet sich ein Editor (meist vim), in dem man die Datei editiert.
Beispiel-Crontab:
Die folgende crontab läuft auf der alten Kiste und sorgt dafür, daß das oben gezeigte Beispiel-Script zum angegebenen Zeitplan ausgeführt wird:
SHELL=/bin/bash # taegliches Autobackup um 02:00 Uhr der ACID-Rechner 0 2 * * * /home/datenbackups/autobackup_acid
Mit Raute # kommentiert man Befehle aus. Am Anfang kann man die Shell festlegen, am besten /bin/bash. Wichtig: Es sollte immer der vollstaendige Pfad zu den Backupscripts angegeben werden, sonst funzt es nicht. Vor jedem Befehl stehen die Zeitplan-Infos in Form von 5 Zahlen(gruppen): 1. Minute, 2. Stunde, 3. Tag, 4. Monat, 5. Wochentag (1=Montag, 2=Dienstag etc.) Sternchen * als Platzhalter sind ebenfalls zulaessig. Beispiel: 0 12 * * 2 bedeutet: ausfuehren immer dienstags um 12:00 Uhr. Beim Speichern der Datei wird die neue crontab automatisch installiert.
Fehlermeldungen resultieren meist in einer Systemmail an den jeweiligen Benutzer, die man in /var/mail/<username> findet.