launchd を使って毎日深夜にだけ Time Machine を実行させる
macOS High Sierra でのお話。 作業中に Tima Machine が動き出すと、macOS が重くなったり固まったり するので、長年プチイライラしていました。 TimeMachineScheduler というアプリを使ったら、当初は調子が良かった のですが、最近はうまく実行してくれません。なぜだ…。 AppleScript + launchd で定期実行出来ないかな?とふと思い立ちました。 調べたら AppleScript を使わずとも /usr/bin/tmutil がありました。 Time Machine CLI です。’$ man tmutil’ で詳しいヘルプを参照できます。 こいつを launchd 使って定期実行したらうまくいきました。ちなみに macOS では cron は非奨励で、代わりに launchd が奨励されています。 作成した scheduled-timemachine.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.masutaka.scheduled-timemachine</string> <key>ProgramArguments</key> <array> <string>sh</string> <string>-c</string> <string>date; sudo tmutil disable && pmset -g ps | grep -q 'AC Power' && tmutil startbackup -b; echo</string> </array> <key>StandardOutPath</key> <string>/Users/masutaka/....