最近、家族ぐるみでクレーンゲームにハマっています。目当てのグッズが取れたときの爽快感たるや! その結果、我が家にはぬいぐるみやらアクセサリやらが急増中です。そして先日、娘の大好きな「なめこ」が景品に登場するという発表が……散財必至の週末がやってきます。

さて、今回は「tmutil」について。Lionで追加されたTime Machine管理用コマンドだが、Time Machineの高い完成度もあり、それほど知られていないようだ。ここでは、そのうちかんたんに使える機能をいくつか紹介してみよう。

Time Machineの隠された「スイッチ」

Leopardで登場したバックアップ機能「Time Machine」は、OS Xにおけるバックアップ作業を根本から変えた。従来は、手作業で書庫を作成して光学ディスクに書き込んだり、cronなど自動処理ツールを使って特定領域を外部ディスクへコピーしていたものだが、Time Machineでは「ただつなぐだけ」でバックアップが可能になった。

バックアップ対象は起動ボリューム全域、要不要を考える必要がない。初回は時間がかかるが、2回目以降は変更が生じたファイルのみ差分として保存されるので、時間がかからない。ハードリンクの機構を活用しているため、iノード番号とファイル名というごくわずかなデータだけでバックアップでき、ディスク容量の消費を抑える。実に洗練された実装だが、インタフェースはスイッチを入/切するだけ、というシンプルさは画期的といえる。

「Time Machine」に難しいオプション設定は不要、スイッチを入/切するだけのシンプルさが身上だ

そのように隙のないTime Machineだが、唯一欠点があるとすれば、「外部ディスクを接続しなければ機能しない」こと。帰宅後は充電するだけというMacBook Pro/Airユーザは珍しくなく、それではせっかくの機能もムダになる。Lionで導入された「ローカルスナップショット」は、そのような外付けHDDの接続さえ億劫がるユーザのための新機能なのだ。

システム環境設定の「Time Machine」ペインではローカルスナップショットをオン/オフできないが、代わりに「tmutil」コマンドが用意されている。その用法は第14回で紹介したとおりだが、ローカルスナップショットのオン/オフだけがその役割ではない。前置きが長くなったが、次項で他の便利機能をいくつか紹介してみよう。

これだけは覚えておきたい、tmutilコマンド用法5選

Time MachineはシンプルなUIが身上であり、特にイジる必要はないと思う。しかし、せっかくのバックアップデータを、いつくるかわからない出番(もちろん来ないほうがいいのだが)のためだけに温存しておくというのも口惜しい話だ。そこで、これは覚えておいて損なし! という機能を5つピックアップしてみた。

1.Command-Sの代わりに「snapshot」

ローカルスナップショット有効時、Time Machineは1時間ごとにバックアップを実行する(スナップショットの作成)。しかし、なにかといえば「Command」-「S」で上書き保存していたユーザにとって、1時間というタイムラグは気の遠くなりそうな長さに感じられるかもしれない。

そこでお勧めしたいのが、内部コマンド「snapshot」。文字どおり、実行されるや否や(ローカル)スナップショットを作成してくれるというものだ。これで、オートセーブ非対応のアプリケーションも、不意のデータ消失を恐れず安心して使えることだろう。

$ tmutil snapshot

2.スナップショットを一覧する

Time Machineで作成されたスナップショットは、Finderでブラウジングできるが、外付けHDD→Backups.backupdb→マシン名の順にフォルダを開かねばならない。最近どのくらいのペースでスナップショットを作成したか、という確認用に利用するのであれば、tmutilの内部コマンド「listbackups」を使うほうがスピーディーだ。

$ tmutil listbackups

このように、Time Machineディスク上にあるスナップショットが作成順に一覧される

3.スナップショットを比較する

ローカルスナップショットは1時間ごとに作成されるため、直前のものと比較すれば、新しいファイル/削除したファイルを割り出す目的に利用できる。しかし、ファイル/フォルダ名などの手がかりがなければ、Time MachineのGUIで探すことは難しい。

作業した時間くらいしか手がかりがない場合には、tmutilの内部コマンド「compare」を利用しよう。引数にはスナップショットのフォルダ名を2つ指定すればOK。以下の実行例は、「2012-04-20-160854」と「2012-04-20-160951」という2つのローカルスナップショットを比較したときのものだ。

$ cd /Volumes/MobileBackups/Backups.backupdb/MyMini
$ tmutil compare 2012-04-20-160854 2012-04-20-160951

2つの期間で変更があったファイルを探し出すことができる

4.バックアップ容量の変遷をチェック

通常、スナップショットは作成されるたびに容量が異なる。スナップショットを比較し、容量の変化の幅が大きければ、動画を追加したタイミングや大量のファイルを削除した日を見つけやすくなる。

そんなとき便利なtmutilの内部コマンドが「calculatedrift」。引数には、スナップショットの保存先のパスを指定するのだが、ここでは「tmutil machinedirectory」を実行したときの戻り値を利用している。

$ tmutil calculatedrift `tmutil machinedirectory`

期間ごとの"ファイルの出入り"を、スナップショット容量の増減という視点から測定できる

5.ファイルをバックアップ対象から除外する

システム環境設定の「Time Machine」ペインにある「オプション...」ボタンをクリックすると、バックアップ対象から除外するボリューム/フォルダ/ファイルを指定できる。同じことをtmutilコマンドで実行しようとすれば、内部コマンド「addexclusion」に続けて、ファイルやフォルダを指定すればいい。

ファイル/フォルダがバックアップ対象から除外されているかどうかを確認する場合には、内部コマンド「isexcluded」が役に立つ。戻り値に「-」が表示されていれば、そのファイル/フォルダはバックアップ対象外で、スナップショットに保存されないということになる。

コマンド

$ tmutil addexclusion backup.iso

実行結果

$ tmutil isexcluded backup.iso 
-   /Users/shinobu/backup.iso
関連記事
【コラム】新・OS X ハッキング! (14) Lion備忘録(7) ~これ知ってる? なTIPS~(2011年9月16日)
【コラム】新・OS X ハッキング! (15) Lion備忘録(8) ~タイムマシンにおねがい~(2011年9月23日)
【コラム】新・OS X ハッキング! (2) Lion直前だからこそ、スマートにHDDを健康診断する(2011年6月24日)
アップル、「Time Capsule」に容量3TBモデル - 価格は44,400円(2011年6月21日)
【コラム】OS X ハッキング! 第333回 Snow Leopardまで秒読み、だからこそ「Time Machine」でバックアップ(2009年8月24日)