[小話] Mac OS の Time Machine が終わってからスリープさせる小技

(更新

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

お役に立ちましたら光栄です。今日はここまで。

2020年7月20日 カテゴリー: Mac OS