A trivial tip to let Mac OS sleep after a Time Machine job completed.
Mac OS には、Time Machine という自動バックアップ機能があり、これはこれで便利なものです。
一つ難点は、仕事中にいきなりバックアップが始まってしまい、「頼む、でかい作業ファイルを作っている最中に自動バックアップしないでくれ!」と慌てることも多いです。
通常は、sudo tmutil disable、sudo tmutil enable で制御すれば良いのですが、こんなことはないでしょうか。一仕事(あるいは一遊び)終えて Mac をスリープさせたいのに、いままさに Time Machine がバックアップ中だ。。。
私は、pmset sleepnow を zzz というコマンドにエイリアスしているのですが、今日はちょっと小技を考えてみました。こちらのサイトが参考になりました。
まず、次のようなシェルスクリプトを書き、自分の PATH に入っているところに置きましょう。chmod +x も忘れずに。この「新」zzz コマンドの特徴は、Time Machine の動作中は画面だけを消し、バックアップとクリーンアップが終わるのを待ち、その後に pmset sleepnow する、というものです。単純なスクリプトですが、tmutil status や currentphase はマニュアルに載っていないようなのですね。
#!/bin/sh
pmset displaysleepnow
while true
do
tmstatus=`tmutil currentphase`
# echo $tmstatus
if [ $tmstatus = 'BackupNotRunning' ]
then
break
fi
sleep 5
done
pmset sleepnow
お役に立ちましたら光栄です。今日はここまで。