Ho creato un sistema di backup per un amico, utilizzando Carbon Copy Cloner. Il sistema è attivo e funzionante da gennaio, ma necessita di un intervento regolare.
Il problema principale è che i dischi rigidi esterni non vengono espulsi prima della disconnessione. Quando viene collegato, il sistema non li riconosce, e in quel momento intervengo e gli chiedo di riconoscerli di nuovo.
Usando la funzione "after run tasks" di CCC, che ti dà la possibilità di chiedere di smontare l'unità di destinazione dopo il backup, sono stato in grado di risolvere la metà del problema. CCC sta automaticamente montando e smontando la destinazione solo se necessario. Quindi ogni volta che viene rimossa l'unità di destinazione, è sempre stata espulsa.
Mi piacerebbe che funzionasse anche per alcune delle unità sorgente. Naturalmente non è necessario per l'unità principale del portatile, ma ci sono un certo numero di unità esterne che vengono spesso utilizzate fuori dal sito. Dopo che sono stati utilizzati, mi piacerebbe che eseguissero il backup alla fine della giornata, e quindi espellere quando hanno finito.
Ho trovato lo script di shell di CCC per l'espulsione della destinazione:
source="$1"
dest="$2"
exitStatus=$3
####Inserted script to run only if backup successful (exitStatus=0)
if [ "$exitStatus" = "0" ]; then
# foo
else
# bar
fi
####Eject destination drive
devID='diskutil info "$2" | awk '/Device Identifier/ {print $NF}''
if [ "$devID" != "" ]; then
(sleep $delay; diskutil unmountDisk "$devID"; diskutil eject "$devID") &
else
(sleep $delay; diskutil eject "$2"; if [ $? -ne 0 ]; then diskutil unmountDisk "$2"; fi) &
fi
Penso che funzionerebbe allo stesso modo per il disco di origine, se lo cambio in:
source="$1"
dest="$2"
exitStatus=$3
if [ "$exitStatus" = "0" ]; then
# foo
else
# bar
fi
devID='diskutil info "$1" | awk '/Device Identifier/ {print $NF}''
if [ "$devID" != "" ]; then
(sleep $delay; diskutil unmountDisk "$devID"; diskutil eject "$devID") &
else
(sleep $delay; diskutil eject "$1"; if [ $? -ne 0 ]; then diskutil unmountDisk "$1"; fi) &
fi
Non sono completamente sicuro di come funzioni questo script, quindi prima di provare questo, qualcuno ha riscontrato un problema?