macのディスク圧迫の原因をターミナルから突き止める

今回はmacネタです。
 

macのディレクトリが減っていた

 

普段Linuxでコマンド叩く時に癖で、df -hを実行してしまうのですが、今回のmacではそれが役に立ちました。

最近dockerで遊ぶことにハマってて、macにdockerを入れて楽しんでます。

で、いざターミナルを起動して、df -hを実行すると、ディスクサイズが枯渇はしてないけれど、数日前には20Gあったサイズが、6Gほどに・・・

原因はなんなんだ?と思い、調べるために実際に使ったコマンドをナレッジとして、アップします。

 
 

どんなコマンド使ったの?

 

macのサポートにも記載されているコマンドで、

sudo du -g -x -d 5 / | awk '$1 >= 5{print}'

です。

duコマンドはここのコマンドページにあるように、ファイルやディレクトリのサイズを計測してくれます。

上の例では、duで出してきたサイズをawkで分解し、5GBを超える場合、ターミナルに表示するといった内容になります。

ディレクトリによっては、
Operation not permitted
が出てくることもありますが、さらに上位のディレクトリで肥大化チェックしているので、気にしなくて良いです。

 
 

他のサイズやディレクトリを指定したい場合は?

 

もちろん、他のサイズでも出力することができます。

例えば、1GB以上を調べたい場合、

sudo du -g -x -d 5 / | awk '$1 >= 1{print}'

とすると、簡単に調べることができます。

ディレクトリを指定して調べたい場合は、

sudo du -g -x -d 5 /System | awk '$1 >= 5{print}'

といった具合にduコマンド内で指定してあげれば良いです。
 
 

実際にどんな感じで使って行ったか

 

さあ、実践編です。

コマンドの使い勝手のいいやり方は、大きいサイズで圧迫してるディレクトリを洗い出し、徐々に範囲を狭めていくのが、わかりやすいかと思います。

あまり小さいサイズで洗い出しても、表示件数が多くなり、可読性が悪くなってしまいます。

まず、10Gなど大きなサイズでコマンドを実行。

実行した結果をみるとこんな感じですね

bash-3.2$ sudo du -g -x -d 5 /System | awk '$1 >= 10{print}'
・・・
du: /Users/sooota/.Trash: Operation not permitted
27	/Users/sooota
27	/Users
24	/Applications
・・・

上記の結果だと10GB以上のディレクトリが
/Users/sooota
/Users
/Applications
であるということがわかります。

/Users/sooota
/Users
と同じサイズが二つありますが、これは、
/Usersディレクトリ内にある
/Users/sooota
と同じサイズなので、/Usersディレクトリは調査の対象外として問題ないです。

なので、今度は/Users/soootaを指定して、サイズを小さめで検索していきます。2GB以上のファイルを検索していきます。

bash-3.2$ sudo du -g -x -d 5 /Users/sooota | awk '$1 >= 2{print}'
・・・

こんな感じで、ディレクトリで絞っていくと、最終的に肥大化しているファイルやディレクトリが見つかります。

ただし、肥大化してるファイルやディレクトリの削除はやっていいか、必ず調べてからやってくださいね。

唐突にやってしまえ〜って勢いで削除すると最悪、アプリやmac自身が動かなくなる可能性もありますので、きちんと調べましょう!!!

調査コマンドは役に立ちますので、ぜひ、お試しあれ〜。

 
 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村