我使用Carbon Copy Cloner为朋友创建了一个备份系统。该系统自1月以来已经启动并运行,但是需要定期干预。
主要问题是在断开连接之前未弹出外部硬盘驱动器。插入电源后,系统无法识别它们,这就是我进行干预并使它再次识别它们的时候。
通过使用CCC的“运行后任务”功能,该功能可以让您选择在备份后卸载目标驱动器,从而解决了一半的问题。CCC仅在需要时自动安装和卸载目标。因此,无论何时删除目标驱动器,它总是已经弹出。
我也希望它也适用于某些源驱动器。当然,对于笔记本电脑的主驱动器不是必需的,但是有许多外部驱动器经常在现场外使用。使用它们后,我希望它们在一天结束时备份,然后在完成后弹出。
我已经找到了用于弹出目的地的CCC外壳程序脚本:
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
我认为,如果我将其更改为:
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
我不确定该脚本的工作方式,因此在尝试之前,有人看到问题了吗?