Stworzyłem system tworzenia kopii zapasowych dla znajomego, używając Carbon Copy Cloner. System działa od stycznia, ale wymaga regularnej interwencji.
Głównym problemem jest to, że zewnętrzne dyski twarde nie są wysuwane przed odłączeniem. Po podłączeniu system nie rozpoznaje ich, i wtedy interweniuję i każę je rozpoznać ponownie.
Korzystając z funkcji „po uruchomieniu zadań” CCC, która umożliwia poproszenie go o odmontowanie dysku docelowego po utworzeniu kopii zapasowej, udało mi się rozwiązać połowę problemu. CCC automatycznie instaluje i odmontowuje miejsce docelowe tylko w razie potrzeby. Dlatego za każdym razem, gdy dysk docelowy jest usuwany, zawsze jest już wysuwany.
Chciałbym, aby działało to również w przypadku niektórych napędów źródłowych. Oczywiście nie jest to konieczne w przypadku głównego dysku laptopa, ale istnieje wiele dysków zewnętrznych, które są często używane poza witryną. Po ich użyciu chciałbym, aby utworzyli kopię zapasową pod koniec dnia, a następnie wysunęli się, gdy skończą.
Znalazłem skrypt powłoki CCC do wysuwania miejsca docelowego:
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
Myślę, że to działałoby tak samo dla napędu źródłowego, jeśli zmienię go na:
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
Nie jestem do końca pewien, jak działa ten skrypt, więc zanim wypróbuję to, czy ktoś widzi problem?