Per eseguire alcune sincronizzazioni con i server remoti per includere i dati nei backup di TimeMachine, ho usato uno script simile al seguente per evitare la sincronizzazione mentre TimeMachine è in esecuzione e non ho ottenuto metà dei backup sincronizzati.
La parte di rilevamento dello script che attende fino a quando TimeMachine ha smesso di funzionare su 10.8 quindi sto cercando un sostituto funzionante per questo.
#!/bin/sh -x
while ps -e | grep backupd | grep -v grep; do
echo "Time Machine is running, waiting ..."
sleep 60
done
Quanto sopra attende fino al termine di un TimeMachine che è già in corso.
Questa è la parte che non funziona più su 10.8 poiché backupd è mostrato sempre in ps -e
output. Quindi aspetterà per sempre.
Il resto dello script funziona ancora bene e viene messo qui solo come riferimento se qualcuno ha bisogno di spegnere TimeMachine durante uno script e poi di sicuro di nuovo in seguito.
save='defaults read /Library/Preferences/com.apple.TimeMachine AutoBackup | sed -e 's/0/false/' | sed -e 's/1/true/''
Questa è una correzione per il fatto che i valori di default letti danno 0
e 1
per bool
s ma i valori di default scrivono solo accettano true
e false
echo "Saved Time Machine state: AutoBackup = $save"
trap "echo 'Restoring Time Machine state'; defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool $save" EXIT HUP INT QUIT ABRT TERM
Qui ripristiniamo lo stato della macchina del tempo precedente quando lo script si arresta per qualsiasi motivo, non voglio accidentalmente spegnere la macchina del tempo e nessuno si accorge.
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -int 0
Spegni TimeMachine, non sai perché -int 0
funziona qui, forse l'intera sed
business non è più realmente necessaria? Penso che cambi il default in int che è ok per off (?)
# ... script that does some remote syncing with other machines while time machine is not running