Time Machineの容量削減のためにtmcleanというツールを作った
なんとPerl製で久々のCPANizeです。
% cpanm -vn App::tmclean
上記でインストール可能ですが、「Perlかよ」という声にお応えして、一つの実行ファイルにパックしたものを用意して、それをHomebrewで入れられるようにしておきました。(App::FatPack::Simple++)
% brew install Songmu/tap/tmclean
使い方は簡単で、
% sudo tmclean --days=300
とかやると、300日以前のバックアップを削除してくれます。root権が必要です。dry runにはroot権は必要無いので、以下のようにすれば事前にコマンドの実行計画を見ることもできます。
% tmclean --dry-run --days=300
環境にもよりますが、かなり時間がかかるので注意です。僕の場合、試しに最も古い2つのバックアップを削除したら、4時間程度かかりました。寝る前とかに仕込むのが良いと思います。何れにせよご利用の際は気をつけてお使いください。
やっていること
この「ターミナルからTimeMachineのバックアップを削除して使用可能領域を増やす」という記事に書かれていることをそのままスクリプトに起こしただけで、tmutil delete
と hdiutil compact
コマンドを内部で実行しているだけです。tmutil delete
だけではHDDの容量が空かないと言うのは罠い。
余談
Time Machineの容量がQNAPを圧迫していたので作った。正確に言うと、以前手作業でコマンド実行したのを後の作業では自動化したいためにツール化した。
上のエントリにも書いてあるとおり、以下のようにすれば、Time Machineのサイズも制限できるようなのでこれも実行しているが実際に有効に動いているかどうかはわからない。
% sudo defaults write /Library/Preferences/com.apple.TimeMachine MaxSize 109951162777
また、sparsebundle自体の容量制限をする手もあるらしいのだが、これはやっていない。
% hdiutil resize -size 1024g /Volumes/path/to/$machineName.sparsebundle
そもそも以下のQNAPの公式ヘルプにも書いてあるように、適切にクオータ設定をしておきましょうという話でもあった…。
ということで、僕自身の個人向けの色が強いツールですが、もし必要な方がいれば、気をつけてご利用ください。