Ich schreibe ein Skript, das mein Time Machine-Verzeichnis mit ssh auf einen Remote-Server überträgt. Ich habe von einem Shell-Skript zu einem AppleScript und dann zurück zu einem Apple-Skript gewechselt und es ist mir egal, welche Art von Skript die Lösung benötigt.
Ich hatte Erfolg beim Starten des Sicherungsvorgangs mit diesem kleinen Codefragment.
do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
Ich versuche jetzt, einen rsync-Befehl auszuführen, sobald die Sicherung abgeschlossen ist. Gibt es in AppleScript eine saubere Möglichkeit, um zu überprüfen, ob der Sicherungsvorgang abgeschlossen ist? Oder gibt es einen guten "Haken", den Sie in bash verwenden können, um zu überprüfen, ob er abgeschlossen ist?
backup
time-machine
applescript
bash
Whitneyz
quelle
quelle
Antworten:
Hier ist eine Möglichkeit - ich weiß, es ist bei weitem keine "richtige" Lösung, aber ich stelle mir vor, es würde funktionieren.
ps ax | grep "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper" | grep -v 'grep'
Sie durchsucht die Prozessliste nach dem backupd-helper-Prozess und filtert dann den grep-Befehl selbst heraus, damit er nicht angezeigt wird. Wenn der Befehl> 0 Ergebnisse zurückgibt, ist der backupd-helper-Prozess immer noch aktiv. Wenn nicht, ist der Prozess beendet, und Sie können davon ausgehen, dass er abgeschlossen ist.
quelle
pgrep backupd-helper
TIME_MACHINE_PID=$! wait $TIME_MACHINE_PID
vielleicht in einer separaten Antwort erläutern ? Vielen Dank.tmutil status
ist der Weg des Löwen, jetzt haben wir ein nettes Werkzeug für diese Art von Abfrage.Auf neueren Betriebssystemen gibt es einen undokumentierten Befehl
tmutil currentphase
, der den Namen der aktuellen Phase anzeigt.quelle
tmutuil
, es ist so gewinnbringend, dass es schwer auszudrücken ist, wie schön es ist, den Backup-Status, die Statistiken und die Aktivitäten programmatisch zu verfolgen und zu überprüfen.Sie können das Backup auch mit starten
tmutil startbackup -b
.-b
blockiert den Befehl, bis die Sicherung abgeschlossen ist.quelle
tmutil status|grep -c "Running = 1"
Gibt "1" zurück, wenn ausgeführt, "0", wenn nicht.
quelle
Das Fehlen von Backup-bezogenen Prozessen ist keine Garantie dafür, dass ein Time Machine-Backup vollständig ist
Beachten Sie auf dem Volume, auf das Time Machine seine Backups schreibt: neben dem
/Latest/
Verzeichnis …… Folgendes :.inProgress/
…… Bündel.Wenn dieses Bundle vorhanden ist, ist eine Sicherung unvollständig.
quelle
.inProgress
Time Machine möglicherweise weiterhin damit beschäftigt ist, sich auf ein Backup vorzubereiten oder dieses aufzuräumen (z. B. alte Backups zu entfernen) , auch wenn kein Verzeichnis vorhanden ist.Die folgende Arbeit für mich ...
Skript backup_status:
Skript backup_wait:
quelle
tmutils
existiert erst ab 10.7. Zuvor können Sie/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper
Time Machine wie erwähnt manuell ausführen.Anschließend können Sie
wait
warten, bis der Vorgang abgeschlossen ist. Ohne Argumente wird es einfach warten; Wenn Sie die PID angeben, erhalten Sie den Rückgabewert (Exit-Status).Insbesondere
wait $!
wird auf den letzten in dieser Shell gestarteten Prozess gewartet. Wie Lauri bereits erwähnt hat, wird diese Wartezeit vor dem Abschluss der Zeitmaschine zurückgegeben, da backupd-helper vor dem Abschluss der Sicherung beendet wird. Ich konnte keinen Prozessnamen finden, der darauf hinweist, dass die Sicherung nicht vollständig war.Beim Betrachten des Inhalts von /var/logs/system.log (oder über die Konsole) ist mir aufgefallen, dass nach Abschluss der Sicherung als letztes das Time Machine-Image ausgeworfen wird. Sicher genug habe ich überprüft, dass (dies ist OS X 10.6.8) während des Backups ein
/Volumes/Time Machine Backups
. So können Sie einfach überprüfen, ob das Verzeichnis existiert. Wenn dies nicht mehr der Fall ist, ist Time Machine beendet.Ich bin nicht sicher, ob dies für alle funktionieren wird, da ich die Anweisungen hier befolgt habe , um auf einem Windows-Computer im Netzwerk zu sichern.
quelle