• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

Ordner kopieren

Blotto-Nim

Granny Smith
Registriert
27.03.11
Beiträge
16
Hey,

Ich würde gerne in definierten Zeitabständen einen Ordner kopieren und ihn an einem anderen Ort speichern.

Da dachte ich Applescript wäre doch dafür sicher ne tolle Sache. Bin bislang noch sehr unerfahren im Umgang damit, aber habe mal ein sehr minimalistisches Script zusammengeschustert, um zu sehen ob es überhaupt funktioniert.
Dabei bin ich auf ein unvorhergesehenes Problem gestoßen:

Das Script macht an sich was es soll: Alle Inhalte des Ordners werden kopiert. Wird der Vorgang allerdings wiederholt kommt der Fehler:

"An dieser Stelle existiert bereits ein Ordner mit diesem Namen"

on idle
tell application "Finder"
set sourceFolder to "Macintosh HD:Users: xx : xxx : xxxx : xxxxx:"
set targetFolder to "Macintosh HD:Users:yyy:yyyy:yyyyy:yyyyyyy:"
duplicatesourceFoldertotargetFolder
end tell
return 600
end idle

Vielleicht gibt es hierfür ja eine Lösung, wie: Ordnerinhalte vergleichen und nur Abweichende Dateien kopieren (wäre natürlich sehr elegant) oder einfach automatisch alles überschreiben was schon da ist (wäre für mich völlig ausreichend)

Vielen Dank für eure Hilfe
 

salome

Golden Noble
Registriert
20.08.06
Beiträge
23.750
Ich habe keine Ahnung vom Scrip-Schreiben, denke mir aber, dass der Befehl in einer bestimmten Phase "ersetze" lauten sollte.
Also vielleicht "kopiere und ersetze …"
Den Automator (Programmordner) hast du dir angesehen?
Salome, quakt hier ohne Sachkenntnis.
 

wiebkes

Braeburn
Registriert
21.10.11
Beiträge
43
Das könnte funktionieren, wenn Du statt
Code:
duplicate sourceFolder to targetFolder
Code:
duplicate sourceFolder to targetFolder [B]with[/B] replacing
einsetzt. Dies allerdings under der Vorraussetzung, dass sich sourceFolder und targetFolder nicht auf dem selben Volume befinden, da sonst nicht kopiert sondern verschoben wird. Siehe auch: Apple hilfe

Viel Erfolg

Wiebke
 

gKar

Maunzenapfel
Registriert
25.06.08
Beiträge
5.362
Ich persönlich würde mir wohl eher ein Shellscript mit einem einzigen rsync-Aufruf basteln, das nicht immer den kompletten Ordner neu kopiert, sondern nur die Differenzen.
Dieses könnte man als Cronjob (bzw. unter OS X besser als launchd-Agent) zu bestimmten Zeitpunkten automatisiert starten lassen.
 

Blotto-Nim

Granny Smith
Registriert
27.03.11
Beiträge
16
Vielen Dank für eure Antworten!

Ich hab jetzt noch einmal ein bischen daran rumgespielt und gKArs Idee mehr oder minder umgesetzt.
Hab im Applescript den "do shell script" Befehl verwendet. Das ganze sieht jetzt wie unten gezeigt aus und reicht für meine Bedürfnisse völlig: Es kopiert immer alle 10 min die geänderten Dateien in den anderen Ordner (Natürlich muss man das Script hierzu als Programm speichern, das sich nicht sofort automatisch beendet.
Für Verbesserungsvorschläge bin ich natürlich offen ;)

on idle -- um den return-Befehl nutzen zu können und so in periodischen Abständen die Befehle im idle zu wiederholen
do shell script "rsync -a --delete <Quell-Ordner(in der Form: User/Ordner/)> <Ziel-Ordner>"
-- die option "--delete" sorgt dafür, dass auch dateien gelöscht werden, die im Quell-Ordner gelöscht werden
return 600 -- Zeit in sec, die bsi zur nächsten Wiederholing verstreichen
end idle
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
Mit rsync würde ich es auch machen. Wenn du als Parameter "-au" verwendest, werden nur neuere / veränderte Dateien kopiert, was das alles sehr beschleunigt.