Backup: Automatische Skripte mit rsync: Unterschied zwischen den Versionen

Aus Hergipedia
Zur Navigation springen Zur Suche springen
(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 Editiermoduns startet man mit dem Befehl:
Den Editiermodus startet man mit dem Befehl:
  crontab -e
  crontab -e
Es oeffnet sich ein Editor (meist vim), in dem man die Datei editiert. Als Beispieldatei siehe crontab.altekiste.
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, 18: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.