Linux.rsync

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen

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!