Linux.rsync
rsync als Backup Hilfsmittel
rsync ist ein leistungsstarker Verzeichnis-Replikator. Ein rsync-Server stellt gewissen Verzeichnissbereiche im "Nur-Lesen" Modus zur Verfügung. Ein rsync-Client kann einen eigenen Verzeichnisbereich mit dem des Servers abgleichen. Am Ende des rsync-Prozesses sollten beide Verzeichnisbäume gleich sein (wenn der Server nicht ständig Änderungen macht). Der OrgaMon Server stellt im wesentlichen 2 Verzeichnisse zur Verfügung:
/etc/ # für die Gesamte Server konfiguration /srv/ # ./fdb/ für firebird Datenbanken # ./ftp/ für FTP Ablagen # ./www/ für das ganze Onlineangebot # ./smb/ für alle Samba Freigaben
Ein Client wird in einem gewissen Intervall per WOL aufgeweckt. Dieser macht per rsync eine Verzeichnisreplikation und schaltet sich danach wieder ab!
Vorbereitungen
- am Quell-Server
rsync Dämon muss laufen
rcrsyncd status
wenn nicht lässt sich die Konfiguration um die entsprechenden Runlevel erweitern. mit YaSt Runlevel 3 und 5 setzten und f? Moment aktivieren. Nun den Dä¯n konfigurieren:
chkconfig --add rsyncd
Nun geht es an den Umfang der Angebote die dieser Dienst machen darf
joe /etc/rsyncd.conf
Der Inhalt der Datei sollte folgendermassen aussehen.
gid = users read only = true use chroot = true transfer logging = true log format = %h %o %f %l %b log file = /var/log/rsyncd.log host allow = 192.168.115.0/255.255.255.0 [srv] path = /srv read only = yes list = yes uid = nobody ODER root? gid = nobody ODER root? hosts allow = 192.168.115.94
?Zugriffsprobleme auf Quelldateien: Werden nicht alle Dateien ?agen sollten die Zugriffsrechte, mit denen rsync die Dateien auf dem Quellsystem lesen kann erh?werden.
uid = root gid = root
- Einstellungen auf dem Backup-System
rsync einfach mal ohne Parameter eingeben! muss gehen! Wenn nicht "rsnyc" installieren
rsync
Oder sehe ich den rsync-Server?
telnet <HostIP> 873 // oder rsync <HostName>:
es muss das Wort RSYNC erscheinen, ansonsten h?dir niemand zu! Oder eine Firewall verhindert die Verbindung.
Backup-Ziel-Verzeichnis vorbereiten:
Ich wollte ein backup von "heute" und eines von "gestern" haben. Also habe im in meinem /backup-Pfad zwei Unterverzeichnise gemacht: (immer chmod 0777 nur so zur Sicherheit)
backup/0 und backup/1
hat man also eine Datei heute ausversehen gel?t ist sie im anderen Pfad sicher noch vorhanden. Es ist dem Konzept der alternierenden B䮤er 䨮lich, bei der man Datensicherungen mit 3 B䮤ern immer alternierend durchf?0,1,2,0,1,2 usw.
Datensicherungslauf automatisch mit cron starten
cron ist ein Dä¯n der zeitgesteuert Programme startet. Hierbei
Stelle sicher, dass cron als Dienst l䵦t (YaST2->System->runlevel editor)
jetzt noch /etc/crontab editieren, und folgenden Eintrag machen:
#min hour daymo month daywk usr cmd 0 9,12,15,18,22 * * * root /root/backup.sh
Datensicherungs Script backup.sh
das /root/backup.sh sollte so aussehen
------------------------------snip #!/bin/bash # # Bestimmen hier, wieviele Backup-S䴺e die bevorraten willst. # In meinem Fall "2", also heute und gestern, bei entsprechendem # Plattenplatz kann das aber auch 20 oder 30 sein! # ANZAHL_BAENDER=2 # # Hier wird eine alsolute Tag-Nummer ermittelt. Mit Hilfe des Modulo- # Operator erh䬴 man die entsprechende "Band-Nummer", beginnen bei # Null (0). # BAND=$((($(date +%s)/86400)%$ANZAHL_BAENDER)) # # mit dem touch ist es leicht m?ch zu sehen wann der rsync # zuletzt "0", "1", ... bearbeitet hat. # touch /backup/$BAND # # jetzt der rsync an sich bwlimit verhindert, dass und rsync die ganze Bandbreite des Netzes # wegnimmt. # rsync -av --delete --force --ignore-errors --bwlimit=200 192.168.115.92::srv/ /backup/$BAND ------------------------------snap
kann man ja erst mal so per Hand aufrufen!
Autostart des ./etc/backup.sh
Auf dem Rechner, der automatisch durch WOL gestartet wird sollte das Backup Skript automatisch starten.
# # # joe /etc/init.d/boot.local # # ganz unten Eintrag sicherstellen: # startproc /etc/backup.sh
ACHTUNG1: Links mitsichern
andere Verzeichnisse, die man via symbolischem Link einfach mitsichern will: DAS GEHT NICHT!!!
ln -s /var/lib/mysql mysql
Besser ist es f?se Verzeichnisse wiederum eine weiterne, eigene rsync-Freigabe anzulegen!
ACHTUNG: die Quelle nicht mit "*" angeben, dadurch verbleiben Verzeichnisse auf dem Replikat. die auf dem Original l䮧st gel?t sind. Ausserdem k?n dadurch mit einem Punkt beginnende Dateien nicht gesehen werden. Einfach die Root Verzeichnisse angeben.
ACHTUNG2: Umlaute
geht einfach nicht. Ev. erst ab Mai 2005: also rsync ev. selbst compileiren. landet bei mir im /usr/local/bin. Muss aber nach /usr/sbin als rsynd und nach /usr/bin nach rsync.