Benutzer-Werkzeuge

Webseiten-Werkzeuge


backup_mit_rsync

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

backup_mit_rsync [2009/04/11 17:43] (aktuell)
Zeile 1: Zeile 1:
 +====== VERALTET ... Backup mit rsync ======
  
 +  * Backup mithilfe von rsync, ssh und tar
 +  * Weiterfuerung der Idee feynman:/​daten/​backup/​idee
 +
 +===== Vorbereitung =====
 +
 +  * Erstellen eines /backup Verzeichnisses auf jedem zu sichernden Server
 +  * Erstellen eines Unterverzeichnisses /​backup/​archives
 +  * Erstellen eines einfachen Skripts zur Archivierung und Kompression der Daten
 +  * backup.sh:
 +<​code>#​!/​bin/​sh
 +
 +## Backup - packen
 +
 +echo "​Backup Phase 1: packen "
 +tar -cjf /​backup/​archives/​etc.tar.bz2 /etc/
 +tar -cjf /​backup/​archives/​root.tar.bz2 /root/
 +exit 0;
 +</​code>​
 +
 +  * Erstellen eines cleanup-Skripts zum Entfernen temporaerer Daten
 +  * cleanup.sh:
 +<​code>#​!/​bin/​bash
 +echo "​Backup Phase 3: cleanup"​
 +rm -rf /​backup/​archives/​*
 +exit 0;
 +</​code>​
 +
 +==== Ausnahme auf Newton ====
 +
 +  * ACHTUNG: Spezielle Skripts auf Newton: backup_newton.sh backup_daten.sh
 +  * im Ordner /​backup/​archives Unterordner für alle Server, deren Daten auf Newton liegen + ein Verzeichnis fuer Newton anlegen
 +  * backup_newton.sh:​
 +<​code>#​!/​bin/​sh
 +## Backup Newton
 +echo "​Backup Newton Phase 1: packen"​
 +tar -cjf /​backup/​archives/​newton/​etc.tar.bz2 /etc/
 +tar -cjf /​backup/​archives/​newton/​root.tar.bz2 /root/
 +exit 0;
 +</​code>​
 +  * backup_<​Name eines servers>​.sh:​
 +<​code>#​!/​bin/​sh
 +
 +## Backup Serverdaten
 +echo "​Backup Serverdaten Phase 1: packen"​
 +tar -cjf /​backup/​archives/​einstein/​einstein.tar.bz2 /​daten/​einstein/​
 +exit 0;
 +</​code>​
 +  * cleanup.sh:
 +<​code>#​!/​bin/​sh
 +echo "​Backup Newton/​Serverdaten Phase 3: cleanup"​
 +rm -rf /​backup/​archives/​einstein/​*
 +rm -rf /​backup/​archives/​hawking/​*
 +rm -rf /​backup/​archives/​kepler/​*
 +rm -rf /​backup/​archives/​s4e/​*
 +rm -rf /​backup/​archives/​newton/​*
 +exit 0;
 +</​code>​
 +
 +==== Vorbereitung auf Feynman ====
 +
 +  * Verzeichnis /​daten/​backup_rsync erstellen
 +  * Im Verzeichnis /​daten/​backup_rsync Unterordner fuer jeden zu sichernden Server erstellen
 +  * Skript backup_all.sh erstellen:
 +<​code>#​!/​bin/​sh
 +## bgweiz Serverbackup - Startskript
 +
 +echo "​Starte remote Backupprozesse..."​
 +ssh root@10.67.0.1 /​backup/​backup.sh ​ ## Einstein
 +ssh root@10.67.0.2 /​backup/​backup.sh ​ ## Hawking
 +ssh root@10.67.0.6 /​backup/​backup.sh ​ ## server4education
 +ssh root@10.67.0.5 /​backup/​backup.sh ​ ## Kepler
 +ssh root@10.67.0.254 /​backup/​backup_newton.sh ​ ## Newton
 +
 +#ssh root@10.67.0.254 /​backup/​backup_daten.sh ## komplette ​ Serverdaten auf Newton
 +
 +echo "​Stoppe empfindliche Serverdienste & sichere Serverdaten..."​
 +#s4e
 +ssh root@10.67.0.254 /​backup/​backup_s4e.sh ​ ## server4education
 +#e4s
 +
 +## Einstein
 +ssh root@10.67.0.1 /​etc/​init.d/​apache2 stop
 +ssh root@10.67.0.1 /​etc/​init.d/​mysql stop
 +ssh root@10.67.0.1 /​etc/​init.d/​postfix stop
 +ssh root@10.67.0.1 /​etc/​init.d/​named stop
 +
 +ssh root@10.67.0.254 /​backup/​backup_einstein.sh
 +
 +ssh root@10.67.0.1 /​etc/​init.d/​apache2 start
 +ssh root@10.67.0.1 /​etc/​init.d/​mysql start
 +ssh root@10.67.0.1 /​etc/​init.d/​postfix start
 +ssh root@10.67.0.1 /​etc/​init.d/​named start
 +## nietsiE
 +
 +## Hawking
 +ssh root@10.67.0.2 /​etc/​init.d/​named stop
 +
 +ssh root@10.67.0.254 /​backup/​backup_hawking.sh
 +
 +ssh root@10.67.0.2 /​etc/​init.d/​named start
 +## gnikwaH
 +
 +## Kepler
 +ssh root@10.67.0.5 /​etc/​init.d/​smb stop
 +ssh root@10.67.0.5 /​etc/​init.d/​nmb stop
 +#ssh root@10.67.0.5 /​etc/​init.d/​ldap stop
 +#ssh root@10.67.0.5 /​etc/​init.d/​slurpd stop
 +
 +ssh root@10.67.0.254 /​etc/​backup/​backup_kepler.sh
 +
 +ssh root@10.67.0.5 /​etc/​init.d/​smb start
 +ssh root@10.67.0.5 /​etc/​init.d/​nmb start
 +#ssh root@10.67.0.5 /​etc/​init.d/​ldap start
 +#ssh root@10.67.0.5 /​etc/​init.d/​slurpd start
 +## relpeK
 +
 +echo "​Starte rsync Uebertragung..."​
 +## Einstein
 +rsync -rblpogD root@10.67.0.1:/​backup/​archives/​* /​daten/​backup_rsync/​einstein/​
 +rsync -rblpogD root@10.67.0.254:/​backup/​archives/​einstein/​* /​daten/​backup_rsync/​einstein/​
 +date | tee  /​daten/​backup_rsync/​einstein/​timestamp
 +## Hawking
 +rsync -rblpogD root@10.67.0.2:/​backup/​archives/​* /​daten/​backup_rsync/​hawking/​
 +rsync -rblpogD root@10.67.0.254:/​backup/​archives/​hawking/​* /​daten/​backup_rsync/​hawking/​
 +date | tee /​daten/​backup_rsync/​hawking/​timestamp
 +## server4education
 +rsync -rblpogD root@10.67.0.6:/​backup/​archives/​* /​daten/​backup_rsync/​s4e/​
 +rsync -rblpogD root@10.67.0.254:/​backup/​archives/​s4e/​* /​daten/​backup_rsync/​s4e/​
 +date | tee /​daten/​backup_rsync/​s4e/​timestamp
 +## Kepler
 +rsync -rblpogD root@10.67.0.5:/​backup/​archives/​* /​daten/​backup_rsync/​kepler/​
 +rsync -rblpogD root@10.67.0.254:/​backup/​archives/​kepler/​* /​daten/​backup_rsync/​kepler/​
 +date | tee /​daten/​backup_rsync/​kepler/​timestamp
 +## Newton
 +rsync -rblpogD root@10.67.0.254:/​backup/​archives/​newton/​* /​daten/​backup_rsync/​newton/​
 +date | tee /​daten/​backup_rsync/​newton/​timestamp
 +echo "rsync Uebertragung abgeschlossen"​
 +
 +echo "​Cleaning up..."
 +ssh root@10.67.0.1 /​backup/​cleanup.sh
 +ssh root@10.67.0.2 /​backup/​cleanup.sh
 +ssh root@10.67.0.6 /​backup/​cleanup.sh
 +ssh root@10.67.0.5 /​backup/​cleanup.sh
 +ssh root@10.67.0.254 /​backup/​cleanup.sh
 +
 +sh /​daten/​backup_rsync/​archiv.sh
 +
 +exit 0;
 +# :wq
 +</​code>​
 +
 +
 +  * Alternativ oder zusaetzlich kann man auch einzelne Skripte fuer jeden Server erstellen
 +  * Im gleichen Verzeichnis ist auch noch die archiv.sh zu erstellen, die den gesamten Ordner mit den Backups verschiebt, mit Datum versieht und einen neuen Backupordner vorbereitet:​
 +<​code>#​!/​bin/​sh
 +## Archivierung
 +echo "​Archiviere Backup..."​
 +mv /​daten/​backup_rsync /​daten/​backup.`date -d "​now"​ +%Y-%m-%d`
 +echo "​Bereite Verzeichnis fuer neues Backup vor.."
 +mkdir /​daten/​backup_rsync
 +mkdir /​daten/​backup_rsync/​einstein
 +mkdir /​daten/​backup_rsync/​hawking
 +mkdir /​daten/​backup_rsync/​s4e
 +mkdir /​daten/​backup_rsync/​kepler
 +mkdir /​daten/​backup_rsync/​newton
 +cp /​daten/​scripts/​* /​daten/​backup_rsync/​
 +</​code>​
 +
 +===== Backup durchfuehren =====
 +
 +  * (auf Feynmnan) cd /​daten/​backup_rsync
 +  * ./​backup_all.sh
 +
 +===== Anmerkung =====
 +
 +Diese Methode benoetigt sehr oft Passwort eingaben, dies ließe sich umgehen, indem man dem Backupserver die entsprechenden ssh-keys verpasst(siehe [[ssh_schluessel_-_anmeldung_ohne_passwort]] ), aber das wuerde bedeuten, dass jeder der Zugriff auf Feynman erlangt, automatisch auch Zugriff auf alle gesicherten Server hat, da kein Passwort für ssh-Verbindungen benoetigt wird. Alternativ koennte man auch statt root einen speziellen backup-user benutzen, doch muss hier auf die Rechte geachtet werden, weiters benoetigen einige rsync-Optionen root-Rechte.
backup_mit_rsync.txt · Zuletzt geändert: 2009/04/11 17:43 (Externe Bearbeitung)