ダックス

え~、今回はduコマンドを使った便利なtipsというか、ワンライナーの紹介です。

さて、サーバを管理していると、「ディスク容量を圧迫しているのはどのディレクトリだ?」ってのを知りたくなることってないですか?
ディスク使用量の傾向も把握せずに、サーバ管理者と言えようか。いや、言えまい。

近頃はHDDの容量単価も安くなり、自宅サーバごときでは、ディスクがあふれるなんてことはあまりないかもしれませんが、レンタルサーバなんかではディスク容量1.5GBとかはまだぜんぜん普通にあります。
つーわけで、以下に紹介するワンライナーを普段から使用して、自分の管理するサーバのディスク使用状況を把握しておきましょう。

alias ducks=’du -cks * |sort -rn |head -n 11′

この一行を.bashrcなどに記述しておけば使用準備はおk。
あとはディスク使用量を知りたいディレクトリに移動してducksと打ち込むだけ。
するとどうでしょう。ファイルorディレクトリのディスク使用量TOP10を表示してくれます。
以下は/varで使用した例です。

[root@scinfaxi]# cd /var
[root@scinfaxi]# ducks
1982756 total
1472600 log
211352 www
100868 cache
90112 tmp
66408 db
40900 lib
280 spool
136 run
64 bind
16 lost+found

一応簡単に説明を。
まずduコマンド。これは引数で指定されたファイルのディスク使用量を表示します。引数がディレクトリのときは再帰的に表示しますが、ここでは-sオプションを指定して総計のみ表示するようにしています。-kオプションはキロバイト表示、-cオプションは引数で指定されたすべてのファイル、ディレクトリの合計を表示するものです。
次にsortにパイプで渡して数値の大きい順に並べ替え、最後に先頭から11行目まで表示、とたったこれだけです。

このコマンドを/var/mail や/home で使用すれば、鯖のリソースを無駄に食いつぶす不逞の輩を把握するのに一役買うはず。