Creé un sistema de respaldo para un amigo, usando Carbon Copy Cloner. El sistema ha estado funcionando desde enero, pero necesita una intervención regular.
El problema principal es que los discos duros externos no se expulsan antes de desconectarse. Cuando está enchufado, el sistema no los reconoce, y ahí es cuando intervengo y hago que los reconozca de nuevo.
Al usar la función CCC "después de ejecutar tareas", que le brinda la opción de pedirle que desmonte la unidad de destino después de realizar la copia de seguridad, he podido resolver la mitad del problema. CCC está montando y desmontando automáticamente el destino solo cuando es necesario. Por lo tanto, cada vez que se extrae la unidad de destino, siempre se expulsa.
Me gustaría que esto también funcione para algunas de las unidades de origen. Por supuesto, no es necesario para la unidad principal de la computadora portátil, pero hay una serie de unidades externas que se usan frecuentemente fuera del sitio. Después de que se utilicen, me gustaría que realicen una copia de seguridad al final del día y que luego se expulsen cuando hayan terminado.
He encontrado el script de shell de CCC para expulsar el destino:
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
Creo que esto funcionaría igual para la unidad de origen, si lo cambio a:
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
No estoy completamente seguro de cómo funciona este script, así que, antes de probar esto, ¿alguien ve un problema?