rsync - vad ska jag använda?

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1

Hej

Att ha en viktig fil på endast ett ställe är samma sak som att ha den viktiga filen på inget ställe alls.

Det viktigaste jag har på min dator är mitt Aperture-bibliotek, det väger för tillfället in på ca 60 GB, och förutom en lokal backup här på datorn så vill jag ha en offsite-backup.

Efter att ha läst runt lite så verkar rsync vara ruskigt smidigt då det bara skickar över ändringar i filer, och inte skickar om saker om och om igen, och jag har kommit fram till någonting som verkar fungera:

rsync -e ssh -av --delete /Volumes/Seagate/Applikationsdata/Aperture 10.0.0.248:~/Pictures/

där 10.0.0.248 för tillfället är ett internt IP här i nätverket då jag inte flyttat den datorn offsite ännu.

Men efter att ha läst runt lite så verkar det inte som rsync får över allting när det gäller Mac OS X? Som t.ex. Resource Forks. Resource Forks innehåller information om vilket program som skall öppna en viss fil, t.ex, om man valt annat än standardprogrammet ifall jag har förstått det rätt. Det är kanske inte jätteviktigt för aperture-biblioteket, men det hade känts bättre om man visste att kopian man hade på andra sidan änden var en exakt kopia

plasticsfuture » 2006 » March

Det finns också något som heter rsyncX och rsync_hfs, är detta att föredra? Vad är skillnaderna?

Det enda jag är ute efter är att ha en exakt kopia på mina filer på en annan dator, så när diskarna i den här datorn har brunnit upp, så har jag fortfarande en backup kvar som är fullt fungerande - räcker rsync för detta?

Nästa steg är ju då att få ett script som körs regelbundet (kanske 1 gång varje natt)

Hur gör jag enklast detta?

Jag skapade ett alias till rsync-kommandot i filen .bash_login, kallat backup_aperture, och så tänkte jag att man kunde göra ett applescript av det:

do shell script "backup_aperture"

men det fungerade inget vidare, "command not found", men det kanske finns ett smidigare sätt att göra det på?

Tack så jättemycket på förhand!

Inte ett direkt svar på ditt problem, men jag tipsar ändå om ett program som heter "Backuplist+" som jag kör min backup med.
Det använder sig av rsync med ett tillägg som gör att bla Resource Forks bibehålls.

Backuplist+

Tack för tipset, jag tittade lite på backuplist, men jag förstod inte ens hur man gjorde för att mata in en server att köra backup till. Hittade bara massa lokala mappar eller monterade enheter

Men att ha ett stort GUI känns som fel väg också, det borde räcka med ett terminalkommando som körs regelbundet, det får nog bli rsync för nu, så ska jag bara komma på hur jag får det att köras per automatik

  • Medlem
  • Linköping
  • 2008-05-28 19:11

Jag kör igång min rsync med launchd varje dag kl 3. Se detta inlägg för lite info om hur du kommer igång: 99.se - Visa enstaka inlägg - Hur skapar man ett startupscript för ett serverprogram?

En smart grej med launchd är att den inte glömmer bort att köra dina script dagligen även om datorn är i viloläge då de egentligen ska köras. De körs istället då datorn väcks igen.

Ursprungligen av bolle:

Jag kör igång min rsync med launchd varje dag kl 3. Se detta inlägg för lite info om hur du kommer igång: 99.se - Visa enstaka inlägg - Hur skapar man ett startupscript för ett serverprogram?

En smart grej med launchd är att den inte glömmer bort att köra dina script dagligen även om datorn är i viloläge då de egentligen ska köras. De körs istället då datorn väcks igen.

Det där lät jäkligt tufft, precis vad jag letar efter!
Har lekt runt lite med det nu, genom att köra exemplen i länken du gav här:

All About launchd Items (and How To Make One Yourself) | Mac Geekery

Nu är målet att köra ett script istället för ett program, har lyckats få ordning på scriptet:

#!/bin/sh
sleep 65
/usr/bin/rsync -e ssh -av --delete /Volumes/Seagate/Applikationsdata/Aperture 10.0.0.248:~/Pictures/

Där sleep 65 har funktionen att vänta dryga minuten för att launchd skall acceptera det, om jag fattat rätt

Scriptet har jag sparat i min hemmamapp, ~, finns det något ställe som är mer lämpligt för script?

Har också skapat en plist som ser ut som följande, är jag på rätt väg?

  • Medlem
  • Linköping
  • 2008-05-28 20:34

min plist ser ut så här:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
"http://www.apple.com/
DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>net.bolleware.daily_backup</string>
        <key>OnDemand</key>
        <true/>
        <key>LowPriorityIO</key>
        <true/>
        <key>Nice</key>
        <integer>12</integer>
        <key>ProgramArguments</key>
        <array>
                <string>/Users/bolle/Library/Scripts/daily_backup.sh</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
                <key>Hour</key>
                <integer>3</integer>
                <key>Minute</key>
                <integer>0</integer>
        </dict>
</dict>
</plist>

Tack för exemplet!
Detta scripts körs varje natt klockan 03, om jag fattat rätt?

samt, vad gör nyckeln "Nice" ?

edit: Måste jag aktivera launchd-scriptet på något sätt, genom:
launchctl load ~/Library/LaunchAgents/net.backup.daily_backup.plist

eller sköter det sig själv?

Senast redigerat 2008-05-28 22:11
  • Medlem
  • Linköping
  • 2008-05-29 09:35

Det kör igång kl 3 eller när datorn vaknar efter kl 3.
Nice ser väl till att din backup-process inte får så hög prioritet utan körs i bakgrunden utan att märkas.
Det stämmer att du måste använda launchctl.
Ett tips är att lägga in någon slags echo i ditt script. På så sätt kan du se i systemloggen (med Console) att scriptet körs.

Tack bolle för alla tips! Scriptet ser nu ut som följande:

#!/bin/sh
sleep 65
date >> ~/Library/Logs/backup_aperture.log
/usr/bin/rsync -e ssh -av --delete /Volumes/Seagate/Applikationsdata/Aperture 10.0.0.248:~/Pictures/ >> ~/Library/Logs/backup_aperture.log
echo "



" >> ~/Library/Logs/backup_aperture.log
echo "Synkronisering av Aperture klart!"

Då får jag dels en loggfil på det, dels att jag echoar ut att scriptet kört klart så jag får en footprint jag kan checka i konsollen

1
Bevaka tråden