Peter Rehm's Blog

apple,development,life & more

Backups unter OSX mit rsync

Mit 6 Kommentaren

Vor kurzem habe ich bei einem Kunden eine kleine Backup Lösung eingerichtet.
Diese sichert die geänderten Dateien auf eine externe Festplatte. Dies habe ich
mit xcopy realisiert.

Ich habe schon öfter nach einer Backup Lösung für OSX gesucht, und außer
einem komplett Image noch kaum was richtig brauchbares gefunden.

Es gibt aber keinen größeren Alptraum als einen Datenverlust, daher habe ich
nach einer Lösung für mein MacBook Pro gesucht, mit dem ich täglich kurz die
geänderten Dateien kopieren kann.

Dabei bin ich auf rsync gestoßen. Die Umsetzung ist denkbar einfach.

CODE:
rsync --archive -u -v /Users/peterrehm/ /Volumes/SEA_DISK/backup_sync/peterrehm/ 


Und das machen die Parameter:

CODE:
-u kopiert ist für das kopieren der geänderten Dateien zuständig
-v Zeigt die ganzen Nachrichten an, ich will ja schließlich wissen was passiert
--archive ist ein synonym für die Parameter -rlptgoD
-r Kopiert alle Verzeichnisse rekursiv
-l symlinks werden als Symlinks kopiert
-p die rechte bleiben erhalten
-t Timestamp bleibt erhalten
-g Die Gruppenzuordnung bleibt erhalten
-o lässt verzeichnisse aus, wenn Timestamp erhalten bleibt
-D kopiert sockets,fifos,....


Allerdings zeigt er beim Aufruf immer alle Dateien an, egal ob er Sie kopiert oder nicht.
Das finde ich etwas doof, da man dann nicht sieht welche Dateien sich explizit verändert haben.

Ich verwende folgendes Skript um meine Daten zu sichern, damit wird mein Web Directory gesichert,
und das ganze Home verzeichnis. Ratsam sind dabei auch die Excludes, wie z.B. das dass keine
Subversion Verzeichnisse (.svn) kopiert werden. Die muss ich nicht im Backup haben.

CODE:
#!/bin/bash
sudo rsync --archive -u -v -C --exclude="temp" --exclude="/Applications/" --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive -u -v -C --exclude=.svn /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/


Update:

Das tolle ist, nach dem ersten mal kopieren geht das razz fazz. Der Backupvorgang geht nach ersten Messungen weniger als 2 Minuten.
Nun gibt es wirklich tägliche Backups.

Update #2

Nun mein volles Backup Inklusive MySQL und SVN Dumps, wie in den anderen Blog einträgen von heute beschrieben.

CODE:
#!/bin/bash
sudo rsync --archive -u -v -C --exclude="temp" --exclude="/Applications/" --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive -u -v -C --exclude=.svn /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/
mysqldump -u root --all-databases > /Volumes/Backup/backup_sync/all_db_dump.sql
svnadmin dump /Users/peterrehm/Library/svn/cms/ > 
/Volumes/Backup/backup_sync/svn_cms.dump


Update #3
Man sollte evtl auch Parallels Desktop excluden, da sonst große Datenmengen kopiert werden müssen wegen dem Windows Müll.
Das muss man aber selber entscheiden.

Update #4

-C lässt auch core Files weg, das ist etwas suboptimal, wenn man Projekte mit einem Core Verzeichnis hat.
Daher --include=core hinzufügen oder einfach ganz auf -C verzichten.

Ich habe bei meinem Backup nun auch .Trash verzichtet, da ich meinen Papierkorb nicht backupen will :-)

In meiner aktuellen Version lasse ich auch die Dateien löschen, die auf der Quelle nicht mehr vorhanden sind.
Das hält das Backup wesentlich kleiner.

Das Script sieht dann jetzt so aus, die beiden rsync zeilen.

CODE:
sudo rsync --archive --delete -u -v --exclude="temp" --exclude=".Trash" --exclude="/Applications/"
 --exclude="tmp" /Users/peterrehm/ /Volumes/Backup/backup_sync/peterrehm/ 
sudo rsync --archive --delete -u -v /Library/WebServer/Documents/ /Volumes/Backup/backup_sync/www/

Geschrieben von Peter Rehm

07.01.2007 um 14:10:16

Abgelegt in Apple

Tags für diesen Artikel: , , ,