Carbon Copy Cloner Shell脚本,用于弹出源驱动器


1

我使用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

我不确定该脚本的工作方式,因此在尝试之前,有人看到问题了吗?

Answers:


1

对于源代码而言,它要简单得多,以下内容就足够了:

#!/bin/sh
diskutil eject "$1"

麦克风


1

在Mac OS X Server 10.6.8上,Sarah在shell脚本中用$ 1替换$ 2来弹出目的地确实可以弹出源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.