回答:
〜/ bin / timemachine:
#!/bin/bash
d="Time Machine" # (change this to match the name of your backup drive)
diskutil mount "$d" && tmutil startbackup -b && diskutil eject "$d"
〜/ Library / LaunchAgents / timemachine_eject.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>timemachine_eject</string>
<key>Program</key>
<string>/Users/username/bin/timemachine</string> <!-- Replace "username" with your username. "~/bin/timemachine" doesn't work -->
<key>StartInterval</key>
<integer>120</integer> <!-- run every two minutes for testing. -->
<!-- Change this to a higher number like 43200 (run every 12 hours) once you've confirmed it works. -->
</dict>
</plist>
スクリプトを実行可能にし、デフォルトのplistをアンロードして、新しいものをロードします。
chmod +x ~/bin/timemachine
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd-auto.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
plistファイルに変更を加えたいときはいつでも、それをアンロードおよびロードする必要があります。
launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
より良い方法があるかもしれませんが、1つの解決策はApplescriptに対するものかもしれません。バックアップ後にapplescriptを実行する方法はまだ見つかっていませんが、次のことができます。
do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
eject disk somedrivename
これを定期的に実行する場合は、cronジョブに添付できます。