backup eines servers auf mac

  • ...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

    3 Mal editiert, zuletzt von maosmurf (25. November 2008 um 01:28)

  • mach ich auch, nur halt vom server auf a usb platte (server rennt auf raid 1 - ich weiß, da wirds auch gsichert, aber panik verbreiten is besser als datenverlust)

    zusätzlich noch ein inkrementelles backup mit tar auf ein anderes festplatterl (NAS) im netz und ich fühl mich recht glücklich *g*

    Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders!
    http://www.chuckbronson.net/

  • grad aufgefallen: cron nimmt ja leider nyx von der umgebung mit, weiss also auch nicht, welche ssh identity er verwenden soll usw.

    das ganze schaut bei mir also so aus (und funktioniert jetzt ECHT :D )


    0 0 * * * SSH_AUTH_SOCK=/tmp/launch-9NljgG/Listeners rsync -avzb --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

    das grüne is neu. um den wert von SSH_AUTH_SOCK zu ermitteln, einfach mal echo $SSH_AUTH_SOCK im terminal eingeben. bei mir isses halt "/tmp/launch-9NljgG/Listeners", weiss nicht wies auf anderen rechnern ist

  • Sicher, dass das net jedes mal nach einem reboot anders ist? Schaut nach mktemp aus.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!