Rsync mit AppleScript, Ordner Synchronisieren bzw. Backup erstellen

Die Idee ist eigentlich voll simpel uns sicher schon irgendwie mal programmiert worden. Das nette an dieser Lösung ist, dass die Ziel und Quell-Ordner über Aliase gekennzeichnet werden.

Man zieht einmal den zu sichernden Ordner als

Alias in den Skript-Ordner, dann den ZielOrdner und bennent diese entsprechen in um (SOURCE und DESTINATION). Beim nächsten Start, synchronisiert das Skript mit rsync und schreibt alles in ein Log, das 2000 Zeilen nie übersteigt…
Code zum markieren einmal anklicken

try

set sourcepath to “”

set destipath to “”

set h to path to me

tell application “Finder”

set h to container of h

if (count of every alias file of h) = 2 then

set thealiases to every alias file of h

repeat with thealias in thealiases

if name of thealias = “SOURCE” then

set sourcepath to characters 1 through -2 of (POSIX path of (original item of thealias as alias)) as text

else if name of thealias = “DESTINATION” then

set destipath to POSIX path of (original item of thealias as alias)

end if

end repeat

if destipath “” and sourcepath “” then

do shell script “rsync -avE –delete-after “ & quoted form of sourcepath & ” “ & quoted form of destipath & ” >> “ & quoted form of POSIX path of (h as alias) & “rsync_log.txt || echo -n”

do shell script “tail -n 2000 “ & quoted form of POSIX path of (h as alias) & “rsync_log.txt | cat> “ & quoted form of POSIX path of (h as alias) & “rsync_log.txt2; mv “ & quoted form of POSIX path of (h as alias) & “rsync_log.txt2 “ & quoted form of POSIX path of (h as alias) & “rsync_log.txt”

else

error “irgendwas ist da falsch gelaufen”

end if

end if

end tell

on error msg

error “irgendwas ist da falsch gelaufen” & msg

end try

4 thoughts on “Rsync mit AppleScript, Ordner Synchronisieren bzw. Backup erstellen

  1. Bernhard Ruppert says:

    Vielen Dank für das nützliche Skript, das mir bis jetzt nützliche Dienste geleistet hat. Seit dem ich das Macsystem auf “Snowleopard” ein Update vorgenommen habe, läuft das Scipt ewig, es belastet deutlich auch den den smbd-Daemon auf der Linuxserverseite, aber es werden keine Daten mehr transferiert. Wo könnte das Problem liegen?
    Vielen Dank nochmals für die nützliche Anregung!
    Bernhard Ruppert

    • Bernhard Ruppert says:

      Entschuldigung – ich meinte nicht “Snowleopard” sondern “Mountain Lion”

    • Hubi says:

      Hm, komisch… im Prinzip macht das Skript ja nichts anderes als rsync zu starten. Ich bin mir nicht sicher. Wenn Du von 10.6 auf 10.8 aktualisiert hat, hat sich zumindest die SMB-Version geändert. Seit 10.7 nutzt Mac OS eine eigens angepasste Version des SMB-Protokolls. Vielleicht ist auch die Version unter Mountain-Lion das Problem.
      Probierst Du den gleichen Sync mal mit CarbonCopy Cloner aus wenn der keine Probleme macht, dann würde ich Dir empfehlen den dafür zu verwenden. Das Programm ist sein Geld mehr als wert.

  2. Bernhard Ruppert says:

    Hallo Hubi und Interessierte,
    so, jetzt habe ich ein bischen rumgeforscht. Bei mir wird das SMB-Share von einem Sambaserver 3.x unter Linux bereitsgestellt. Das Skript scheint dann unter “Montainlion” NICHT einzufrieren, wenn man den Schalter -E bei dem rsync-Aufruf einfach wegläßt. Ich glaube auch, dass diese Option in vielen Fällen nicht wesentlich ist.
    Das schöne an diesem Skript ist, dass man es gut zur Automatisierung brauchen kann und eine gute Kombination mit launchd darstellt. Vereinfachen kann man sich die launchd-Konfiguration mit Lingon. Wahrscheinlich hat dies damit was zu tun, dass Apple wohl selbst an einen SMB-Client bastelt, der dann leider mit der SAMBA-Linux-Welt nicht in jeder Kombination kompatibel ist oder es ist einfach ein BUG oder Feature ;-)
    Ich freu mich, wenn es dem einen oder anderen geneigten Leser weiterhilft :-)

Comments are closed.