Linux.rsync
rsync als Backup Hilfsmittel
- am Quell-Server
rsync Dämon muss laufen
rcrsyncd status
wenn nicht läuft mit YaSt Runlevel 3 und 5 setzten und für den Moment aktivieren. Nun den Dämon konfigurieren:
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 übertragen sollten die Zugriffsrechte, mit denen rsync die Dateien auf dem Quellsystem lesen kann erhöht 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ört 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öscht ist sie im anderen Pfad sicher noch vorhanden. Es ist dem Konzept der alternierenden Bänder ähnlich, bei der man Datensicherungen mit 3 Bändern immer alternierend durchführt: 0,1,2,0,1,2 usw.
Datensicherungslauf automatisch mit cron starten
cron ist ein Dämon der zeitgesteuert Programme startet. Hierbei
Stelle sicher, dass cron als Dienst läuft (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ätze 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ält man die entsprechende "Band-Nummer", beginnen bei # Null (0). # BAND=$((($(date +%s)/86400)%$ANZAHL_BAENDER)) # # mit dem touch ist es leicht möglich 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!
ACHTUNG: andere Verzeichnisse, die man via symbolischem Link einfach mitsichern will: DAS GEHT NICHT!!!
ln -s /var/lib/mysql mysql
Besser ist es für diese Verzeichnisse wiederum eine rsync-Freigabe anzulegen!