...geht eh supa!
kurz angerissen:
ich habe einen (web)server.
das ziel: regelmägig automatische backups auf meinen mac, OSX 10.5.
lösung: rsync + crontab, is beides bereits in 10.5 enthalten
schritt 1 (am server):
"apt-get install rsync" (falls noch nicht vorhanden)
schritt 2:
public key des clients (mac) am server ablegen (damit man später daten verschlüsselt über ssh übermitteln kann, ohne ständig mach dem passwort gefragt zu werden)
da ich diesen schritt bereits vor laaanger zeit abgehandelt habe, hier nur kurz der link zur anleitung. is aber ne sache von 1 minute
schritt 3 (am mac):
rsync ausprobieren und feinschliff geben. bei mir tuts der befehl
rsync -aqzb --copy-links --delete -e ssh userAmServer@maosmurf.com:/var/www/ /Volumes/MAORAID/zielOrdner/
-a archivieren, also permissions, timestamps etc unverändert übernehmen
-q quiet, das gegenteil zu verbose. kein output, soll ja "im hintergrund laufen"
falls jemand wünscht, das ganze zu loggen, -v statt -q verwenden und den STDOUT auf ein logfile umleiten: rsync .... > /Users/meiNuserAmMac/Desktop/rsync_$(date +\%Y-\%m-\%d-\%H-\%M).log - oer so aber das führt jetzt zu weit.
-z komprimiert übertragen (mittels gzip)
-b backup erstellen
--copy-links - symbolische links werden aufgelöst (ohne dem wäre am zielrechner wieder nur ein symlink - je nach geschmack und bedarf)
-- delete - alte files am zielrechner, die nicht mehr am quellrechner vorhanden sind, werden gelöscht
-e ssh - über ssh kommunizieren. sonst bräucht ma an deamon und port 800 irgendwas... viel komplizierter UND unsicherer! außerdem, wozu hamma vorhin ssh keys ausgetauscht?
sobald man sich das rsync kommando fertig angepasst und getestet hat:
schritt 4 (am mac):
crontabs werden in regelmäßigen abständen ausgeführt, wie von zauberhand
am besten folgende zeile in eine neue textdatei meinNeuerCronTab.txt tippen (respektive den richtigen rsync befehl):
@daily rsync -aqzb --copy-links --delete -e ssh user@server.com:sync/ /Volumes/MAORAID/zielOrdner/
speichern nicht vergessen
abschließend im terminal "crontab meinNeuerCronTab.txt" - fertig!
Schritt 5 (für die feigen):
um auf Nummer sicher zu gehen, mittels "crontab -l" die tabs auflisten lassen - unser crontab sollte dabeisein
...falls man was verändern will, "crobtab -e" zum editieren oder "crontab -r" zum removen.
====
Zum spielen mit crontab könnte man auch folgendes anlegen:
* * * * * echo "Ich bin so dumm und weiss nicht warum" > /Users/maosmurf/Desktop/crontest$(date +\%Y-\%m-\%d-\%H-\%M).txt
Das erzeugt mir jede Minute eine neue Textdatei am Desktop
So. Mein server wird jetzt täglich auf zwei RAID0 platten und TimeMachine gebackupped ... jetzt kann ich beruhigt schlafen gehen :p
EDIT: damit man weiss, was so im hintergrund abgeht, kann man den STDOUT/STDERR umleiten in logfiles:
@daily rsync -aqzb --copy-links --delete -e ssh root@maosmurf.com:sync/ /Volumes/MAORAID/maosmurf.com/ > ~/Desktop/rsync_$(date +\%Y-\%m-\%d-\%H-\%M).log 2> ~/Desktop/rsync_$(date +\%Y-\%m-\%d-\%H-\%M).err.log