Backup: Automatische Skripte mit rsync: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== Voraussetzungen == Man braucht auf den Quell- und Zielrechnern jeweils rsync. Bei Linux ist das in der Standardinstallation enthalten. Bei Windows braucht man...“) |
Keine Bearbeitungszusammenfassung |
||
Zeile 19: | Zeile 19: | ||
rsync kann bequem Verzeichnisse synchronisieren. Die Scripte sind ascii-Textfiles. | rsync kann bequem Verzeichnisse synchronisieren. Die Scripte sind ascii-Textfiles. | ||
=== Beispielscript === | ==== Beispielscript: ==== | ||
Das folgende Script läuft auf der alten Kiste und sorgt für das automatische Backup des home-Bereichs der acid1. | Das folgende Script läuft auf der alten Kiste und sorgt für das automatische Backup des home-Bereichs der acid1. | ||
Zeile 47: | Zeile 47: | ||
Eine bestehende crontab kann man mit folgendem Befehl anzeigen: | Eine bestehende crontab kann man mit folgendem Befehl anzeigen: | ||
crontab -l | crontab -l | ||
Den | Den Editiermodus startet man mit dem Befehl: | ||
crontab -e | crontab -e | ||
Es oeffnet sich ein Editor (meist vim), in dem man die Datei editiert. | Es oeffnet sich ein Editor (meist vim), in dem man die Datei editiert. | ||
Mit Raute # kommentiert man Befehle aus. | |||
Am Anfang kann man die Shell festlegen, am besten /bin/bash. | ==== 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. | 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): | 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.) | 1. Minute, 2. Stunde, 3. Tag, 4. Monat, 5. Wochentag (1=Montag, 2=Dienstag etc.) | ||
Sternchen * als Platzhalter sind ebenfalls zulaessig. | Sternchen * als Platzhalter sind ebenfalls zulaessig. | ||
Beispiel: 0 12 * * 2 bedeutet: ausfuehren immer dienstags um 12:00 Uhr | Beispiel: 0 12 * * 2 bedeutet: ausfuehren immer dienstags um 12:00 Uhr. | ||
Beim Speichern der Datei wird die neue crontab automatisch installiert. | 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. | Fehlermeldungen resultieren meist in einer Systemmail an den jeweiligen Benutzer, die man in /var/mail/<username> findet. |
Version vom 25. Februar 2009, 17:34 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. Das geht auf der cygwin-Kommandozeile mit:
ssh-host-config
Dann alle Defaults befolgen und die Frage, ob der SSH-Server als Dienst gestartet werden soll, mit ja beantworten. Der SSH-Server wird dann als Systemdienst installiert und bei jedem Neustart automatisch gestartet.
Manuelles Starten und Stoppen des Servers auf der Kommandozeile:
cygrunsrv --start sshd cygrunsrv --stop sshd
Ggf. muss sshd.exe noch in der Windows-Firewall freigegeben werden.
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.