Ich brauche Hilfe bei einem BackUp Skript.
Ich habe es vor etlicher Zeit aus einer Vorlage für mich so modifiziert, dass es wunderbar funktioniert, sogar in einem internen Netzwerk.
Jetzt wollte ich es auch auf einem anderen Rechner (iMac) verwenden und habe es umgeschrieben … es arbeitet auch im Grunde richtig … aber ganz zum Schluß bringt es eine Fehlermeldung und arbeitet dann weiter, wenn man die vorhandene OK-Taste gedrückt hat, allerdings fehlt dann der allerletzte Teil.
Aber am besten stelle ich das Skript einmal hier vor. Es bringt den iMac dazu, einen bestimmten Ordner auf dem Schreibtisch zu komprimieren, ihm einen bestimmten Namen mit dem aktuellen Datum zu geben, die entstandene gepackte Datei in einen Datensicherungs-Ordner zu kopieren und das Original auf dem Schreibtisch wieder zu löschen. Das funktioniert alles, nur wenn die 4,88 GB große komprimierte Datei in den Datensicherungs-Ordner verschoben wird, erhält man immer bei ca. 3 GB (auch mal bei 2,94 GB) eine Fehlermeldung, die im Skript bei Fehlern auch so vorgesehen ist. Wenn man dann auf die vorhandene OK-Taste klickt, verschwindet die Fehlermeldung, die datei wird zu Ende kopiert und erscheint im Datensicherungs-Ordner grau mit einer geringen Größenangabe. Wenn man den Ordner dann schliesst und wieder öffnet, sieht man, dass die ganze Datei richtig verschoben wurde. Der letzte Teil des Skripts, das Löschen der Datei auf dem Schreibtisch, findet dann nicht mehr statt. Ich selbst kann ja alles manuell, aber das Skript ist ja für Benutzer, die nicht genau wissen, was da passiert.
Hier ist das Skript:
--------------------------- Anfang Skript ------------------------------
-- Set basic variables for the work folder and the backup disk.
tell application "Finder"
set theFolder to folder "Folder a" of folder "Folder B" of folder "Desktop" of folder "xyz" of folder "Users" of startup disk
-- set this to the real location of your work folder.
set theBackupDisk to folder "Datensicherung" of disk "Datensicherung Mac" -- change this to the location of your backup disk.
end tell
-- Generate a date in the format dd.mm.yy If you like your date differently, change this.
set backupDate to (day of (current date)) + 100 as string
set backupDate to characters 2 thru 3 of backupDate
set backupDate to backupDate as string
set tempVar to (month of (current date)) + 100 as string
set tempVar to characters 2 thru 3 of tempVar
set backupDate to backupDate & "." & tempVar as string
set tempVar to (year of (current date)) as string
set tempVar to characters 3 thru 4 of tempVar
set backupDate to backupDate & "." & tempVar as string
-- Prepare variables for the location of the folder to be backed up and the name of the resulting backup.
tell application "Finder"
set theBackUpFile to name of theFolder & " Backup " & backupDate & ".zip"
set theFolder to theFolder as string
end tell
-- Create the unix path to your work folder. This is needed for the shell script.
set theUnixPath to POSIX path of theFolder
-- Archive the work folder, creating a backup file on the desktop.
do shell script "cd ~/Desktop/; zip -r \"" & theBackUpFile & "\" \"" & theUnixPath & "\""
-- Point theBackupFile to the new file.
tell application "Finder"
set theBackUpFile to theBackUpFile
set theBackUpFile to file theBackUpFile of desktop
end tell
delay 1 -- This is needed to give the Finder some time to realise there is a backup file.
-- Here the backup is copied to the backup disk, and deleted on the desktop. If there is already an item with the backup name and date on the backup disk, nothing is copied and the archived folder remains on the desktop.
tell application "Finder"
try
move theBackUpFile to theBackupDisk
delete theBackUpFile
on error
-- If something goes wrong, warn and exit.
activate
display alert "Datensicherung abgebrochen" message "Es gab den Ordner \"" & ((name of theBackUpFile) as string) & "\" entweder bereits auf der Sicherungsfestplatte oder etwas anderes ging schief. Es wurde nichts kopiert und gesichert." as warning
end try
end tell
--------------------------- Ende Skript ------------------------------
Der Fehler passiert bei "move theBackUpFile to theBackupDisk", die Warnmeldung, die erscheint, ist die oben nach "display alert" angegebene. "delete theBackUpFile" wird nicht mehr ausgeführt.
Es dauert alles ziemlich lange, aber auf einem anderen Rechner läuft eine etwas andere Version seit Jahren tadellos! Kann es daran liegen, dass das Kopieren so lange dauert, dass das Skript schon zu früh im Datensicherungsordner nachschaut, dort die halb kopierte Datei mit dem "richtigen" Namen bereits vorfindet und deshalb die Meldung schickt?
Wer kann mir hier helfen? Wenn jemand übrigens dies Skript für eigene Lösungen verwenden möchte, ist das kein Problem, ich hab mir ja auch die Vorlage irgendwo geholt.
Bin gespannt auf Eure Reaktion!
ffmusik
Ich habe es vor etlicher Zeit aus einer Vorlage für mich so modifiziert, dass es wunderbar funktioniert, sogar in einem internen Netzwerk.
Jetzt wollte ich es auch auf einem anderen Rechner (iMac) verwenden und habe es umgeschrieben … es arbeitet auch im Grunde richtig … aber ganz zum Schluß bringt es eine Fehlermeldung und arbeitet dann weiter, wenn man die vorhandene OK-Taste gedrückt hat, allerdings fehlt dann der allerletzte Teil.
Aber am besten stelle ich das Skript einmal hier vor. Es bringt den iMac dazu, einen bestimmten Ordner auf dem Schreibtisch zu komprimieren, ihm einen bestimmten Namen mit dem aktuellen Datum zu geben, die entstandene gepackte Datei in einen Datensicherungs-Ordner zu kopieren und das Original auf dem Schreibtisch wieder zu löschen. Das funktioniert alles, nur wenn die 4,88 GB große komprimierte Datei in den Datensicherungs-Ordner verschoben wird, erhält man immer bei ca. 3 GB (auch mal bei 2,94 GB) eine Fehlermeldung, die im Skript bei Fehlern auch so vorgesehen ist. Wenn man dann auf die vorhandene OK-Taste klickt, verschwindet die Fehlermeldung, die datei wird zu Ende kopiert und erscheint im Datensicherungs-Ordner grau mit einer geringen Größenangabe. Wenn man den Ordner dann schliesst und wieder öffnet, sieht man, dass die ganze Datei richtig verschoben wurde. Der letzte Teil des Skripts, das Löschen der Datei auf dem Schreibtisch, findet dann nicht mehr statt. Ich selbst kann ja alles manuell, aber das Skript ist ja für Benutzer, die nicht genau wissen, was da passiert.
Hier ist das Skript:
--------------------------- Anfang Skript ------------------------------
-- Set basic variables for the work folder and the backup disk.
tell application "Finder"
set theFolder to folder "Folder a" of folder "Folder B" of folder "Desktop" of folder "xyz" of folder "Users" of startup disk
-- set this to the real location of your work folder.
set theBackupDisk to folder "Datensicherung" of disk "Datensicherung Mac" -- change this to the location of your backup disk.
end tell
-- Generate a date in the format dd.mm.yy If you like your date differently, change this.
set backupDate to (day of (current date)) + 100 as string
set backupDate to characters 2 thru 3 of backupDate
set backupDate to backupDate as string
set tempVar to (month of (current date)) + 100 as string
set tempVar to characters 2 thru 3 of tempVar
set backupDate to backupDate & "." & tempVar as string
set tempVar to (year of (current date)) as string
set tempVar to characters 3 thru 4 of tempVar
set backupDate to backupDate & "." & tempVar as string
-- Prepare variables for the location of the folder to be backed up and the name of the resulting backup.
tell application "Finder"
set theBackUpFile to name of theFolder & " Backup " & backupDate & ".zip"
set theFolder to theFolder as string
end tell
-- Create the unix path to your work folder. This is needed for the shell script.
set theUnixPath to POSIX path of theFolder
-- Archive the work folder, creating a backup file on the desktop.
do shell script "cd ~/Desktop/; zip -r \"" & theBackUpFile & "\" \"" & theUnixPath & "\""
-- Point theBackupFile to the new file.
tell application "Finder"
set theBackUpFile to theBackUpFile
set theBackUpFile to file theBackUpFile of desktop
end tell
delay 1 -- This is needed to give the Finder some time to realise there is a backup file.
-- Here the backup is copied to the backup disk, and deleted on the desktop. If there is already an item with the backup name and date on the backup disk, nothing is copied and the archived folder remains on the desktop.
tell application "Finder"
try
move theBackUpFile to theBackupDisk
delete theBackUpFile
on error
-- If something goes wrong, warn and exit.
activate
display alert "Datensicherung abgebrochen" message "Es gab den Ordner \"" & ((name of theBackUpFile) as string) & "\" entweder bereits auf der Sicherungsfestplatte oder etwas anderes ging schief. Es wurde nichts kopiert und gesichert." as warning
end try
end tell
--------------------------- Ende Skript ------------------------------
Der Fehler passiert bei "move theBackUpFile to theBackupDisk", die Warnmeldung, die erscheint, ist die oben nach "display alert" angegebene. "delete theBackUpFile" wird nicht mehr ausgeführt.
Es dauert alles ziemlich lange, aber auf einem anderen Rechner läuft eine etwas andere Version seit Jahren tadellos! Kann es daran liegen, dass das Kopieren so lange dauert, dass das Skript schon zu früh im Datensicherungsordner nachschaut, dort die halb kopierte Datei mit dem "richtigen" Namen bereits vorfindet und deshalb die Meldung schickt?
Wer kann mir hier helfen? Wenn jemand übrigens dies Skript für eigene Lösungen verwenden möchte, ist das kein Problem, ich hab mir ja auch die Vorlage irgendwo geholt.
Bin gespannt auf Eure Reaktion!
ffmusik