Server Backup mit rsync

Alain Aubert

Legendäres Mitglied
Hi WF

Ich hab grad in einem Magazin gelesen, ein Backup sei wie ein Schirm, wenn man eins hat, braucht man es nicht.... ;-)

Nachdem ich es zuerst mit scp versucht habe, wollte ich ein komplettes automatisches Backup. Dies hat mich zu rsync geführt.

Auf dem Server ist Linux installiert, auf der Backup Maschine Win2k.

1. http://www.cygwin.com installieren, das ist eine extrem schöne Sache ;-) Wichtig ist bei der installation rsync und ssh installiert wird. Die Installation ist sehr einfach und man kann sie immer wieder starten um weitere Komponenten zu installieren.
2. ssh installieren, siehe da: http://pigtail.net/LRP/printsrv/cygwin-ssh.html
3. rsync --daemon auf der Backup Maschine starten
4. Shellscript schreiben:
QUOTE
rsync -azvPe ssh /server/htdocs/ root@128.128.128.128:/cygdrive/c/backup/server/ >> rsync.log
rsync -azvPe ssh /server/mysql/ root@128.128.128.128:/cygdrive/c/backup/mysql/ >> rsync.log

-> /home/backup/send.sh
Mehr über rsync -> http://samba.anu.edu.au/ftp/rsync/rsync.html
5. SSH Schlüssel des Servers auf dem Backup Client kopieren
ssh-keygen -P "Passphrase" und .ssh/identity.pub in .ssh/know_hosts von dem Backup Client kopieren, damit man sich nicht immer anmelden muss, siehe auch http://www2.yo-linux.com/cgi-bin/man.cgi?topic=ssh-keygen
6. Cronjob auf dem Server installieren:
QUOTE 0 3 * * * sh /home/backup/send.sh


Fragen, die noch im Raum stehen:

Zuerst, ich bin ein Linux Anfänger, und musste feststellen, dass es nicht ganz einfach ist, aber rsync ist absolut genial ;-)

Als Resultat habe ich jetzt einen Mirror aller Html Files, da /server/htdocs/ der Document Root ist. Weiter backuppe ich die Mysql Dumps, die von einem anderen Script generiert werden. Was fehlt mir noch, was backupped ihr und wie macht ihr das? Server Konfigurationsfiles...? http.conf, php.ini, mysql...? /var/mail/, was soll bzw. muss ist die optimale Backupstrategie?

Was hat rsync für Tücken. Ich habe jetzt ja immer einen aktuellen Mirror. Mit --delete werden dazu noch die Files gelöscht, die im Original auch entfernt wurden, soll ich das verwenden. Wie stehts mit User Rechten, etc. Was muss ich sonst noch beachten.

Zu 4. ist das sicher?

Danke fürs lesen ;-)

alain
 
Hallo Alain

Hey, wieder mal am backuppen ?

QUOTE 3. rsync --daemon auf der Backup Maschine starten
Ich würde das durch einen ssh Server ersetzen und dann mittels

CODE rsync -e ssh -andere Optionen das Backup durchführen lassen. Das wurde mir ebenfalls mal so empfohlen, weil es der rsync Dienst nicht gerade sicher sein soll. (Dummerweise gabs gleich danach etliche Probleme mit ssh :)

Bei genauerem Lesen ist mir aufgefallen, dass du ja schon -e ssh benutzt. Dann kannst du den rsync -daemon gleich mal stoppen gehen.


QUOTE root@128.128.128.128
root Zugriff ohne Passwort dank voraus ausgetauschtem key.....Gut, dem Fall ists cygwin auf einem Windows. Für Unix nicht zu empfehlen....


QUOTE was backupped ihr und wie macht ihr das
/etc + /var ohne die Datenbanken mit tar zusammenpacken und ebenfalls auf den Backupserver schieben. Einfach alles, wo irgendwas konfiguriert oder speziell abgelegt wurde.


QUOTE Mit --delete werden dazu noch die Files gelöscht,
Gedankenspiel: Ein böser Mensch hackt den Server und löscht die Files....und der cron tut das "rsyncen". Tschüss Backup

Je nach Leitung und Menge der veränderten Daten kann man diesen Prozess auch häufiger ausführen lassen. z.B jede Stunde oder so....

GRuss
Roger
 
QUOTE Bei genauerem Lesen ist mir aufgefallen, dass du ja schon -e ssh benutzt. Dann kannst du den rsync -daemon gleich mal stoppen gehen.
Thx alot, hab mich bei diversen Quellen informiert und das war mir nicht klar ;-)) Btw, wie geht der Befehl um alle laufenden Prozesse anzuzeigen.


QUOTE root Zugriff ohne Passwort dank voraus ausgetauschtem key.....Gut, dem Fall ists cygwin auf einem Windows. Für Unix nicht zu empfehlen....
Was ist der Hacken an dem, mit welchen Stichworten muss ich Google da füttern, ich bin da grausam am schwimmen.
-> Ich wollte noch einen User erstellen, der genau für die Backup Ordner rechte hat, würde dies das Problem mindern?


QUOTE /etc + /var ohne die Datenbanken mit tar zusammenpacken und ebenfalls auf den Backupserver schieben. Einfach alles, wo irgendwas konfiguriert oder speziell abgelegt wurde.
etc, var, gut, macht Sinn. Thx again. Gibts n Befehl, der mit die Grösse aller Files in z.B. etc anzeigt?


QUOTE Gedankenspiel: Ein böser Mensch hackt den Server und löscht die Files....und der cron tut das "rsyncen". Tschüss Backup
I see... Meine Idee: Ich rsynce mit --delete auf die Backup Maschine und lasse nach jedem rsync ein rsync ohne --delete auf einen andere HD laufen. Somit hätte ich ein Mirror Backup, sowie ein erweitertes Mirrorbackup inklusive aller schon gelöschter Dateien. Im o.g. Fall würden mein Backup zerschossen, aber das 2te Backup bliebe bestehen. Der Nachteil ist der doppelte Plattenspeicher, was aber zu verkrafter wäre. Macht das Sinn?


QUOTE Je nach Leitung und Menge der veränderten Daten kann man diesen Prozess auch häufiger ausführen lassen.
150 KB/s, ich dachte an stündlich, wobei ich fasziniert bin, wie wenig rsync den Prozessor belastet. Das einzige was ein wenig zieht ist die Fileliste erstellen (a) sowie das gzippen der Mysql Backups. (a) will ich beheben indem ich einzelne Projekte nur wöchentlich andere täglich und andere stündlich backuppe.

Wie backuppt ihr? Eigenes Script?
 
QUOTE wie geht der Befehl um alle laufenden Prozesse anzuzeigen.
>ps aux


QUOTE -> Ich wollte noch einen User erstellen, der genau für die Backup Ordner rechte hat, würde dies das Problem mindern? Wäre gut, aber ich weiss nicht, ob dies unter Windows im Cygwin überhaupt einen Einfluss hat.


QUOTE der mit die Grösse aller Files in z.B. etc anzeigt?
> du -sh /etc


QUOTE Ich rsynce mit --delete auf die Backup Maschine und lasse nach jedem rsync ein rsync ohne --delete auf einen andere HD laufen.
Wie wärs damit: rsync mit --delete, dafür aber auf dem Server jeweils VOR dem rsync das aktuelle Backup zusammenfassen (komprimieren) und eine Art History bilden. Klar, das History System wächst recht schnell, aber dafür kann man nahezu beliebig in der Vergangenheit Daten hervorkramen. Evt. brauchts dann noch ein weiteres Skript, welches alte Daten weglöscht, so dass die HD nie komplett gefüllt wird.


QUOTE sowie das gzippen der Mysql Backups
Das auslesen der Datenbank vor dem gzippen ist auch nciht zu vernachlässigen. Evt. lohnt es sich, die mysql Dumps gar nicht erst zu komprimieren, da rsync ja nur die differenzen überträgt. Aber das musst du selber mal studieren.....


QUOTE Wie backuppt ihr? Eigenes Script?
Im Moment haben sich lauter kleinere Skripts angesammelt. Auf dem Backupserver selber ist dann arkeia (www.arkeia.com) im Einsatz. ISt immer eine kleinere Baustelle, zum einen muss man plötzlich die Datenmengen reduzieren oder die CPU Last verringern, so dass es an die eingenen Server massgeschneidert läuft und man nicht alle 2 Tage von Hand eingreifen muss. (Oder man schafft sich einen neuen besseren Server an :)
 
Danke für deine Tipps Roger, ich hab jetzt meinen Plan, und werde das noch alles zusammenschustern.
Die Idee mit der History hab ich geschnallt und das hab ich gesucht ;-).
 
Zurück
Oben