カテゴリ:

dfコマンドを実行して定期的にパーティションの利用状況を確認するのは、管理者としてお約束です。コマンドを実行するとすべてのパーティションが表示されますが、特定のものだけを表示するには下記のようにすると便利でしょう。/varと/homeを指定した例です。

# df -h | grep '\(Filesystem\|/var\|/home\)'
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             4.9G  188M  4.4G   5% /home
/dev/hda5             2.9G  1.7G  1.2G  59% /var

さて/var内部を個別に調べるにはduコマンドを利用します。

# du -sk /var/* | sort -n
4       /var/mail
8       /var/local
〜略〜
42724   /var/lib
765912  /var/spool
1079816 /var/cache

例えば/var/spoolの中で1MB(1,024K)以上のファイルを見つけるにはfindコマンドを利用します。

# find /var/spool/ -size +1024k
/var/spool/squid/00/AC/0000AC60
/var/spool/squid/00/8E/00008E92
〜略〜

-execオプションを加えてlsコマンドを利用するとファイルの詳細併せて表示できます。

# find /var/spool/ -size +1024k -exec ls -lh  {} \;
-rw-r--r--  1 squid squid 1.2M Jun  8 20:38 /var/spool/squid/00/AC/0000AC60
-rw-r--r--  1 squid squid 1.9M Jun  4 07:18 /var/spool/squid/00/8E/00008E92
〜略〜

awkコマンドを併用することで、より見やすくすることも出来ます。

#  find /var/spool/ -size +1024k -exec ls -lh  {} \; | awk '{ print $9,$5 }' | sort
/var/spool/squid/00/15/0000151E 3.1M
/var/spool/squid/00/34/00003464 1.2M
〜略〜

下記は/tmpディレクトリにある2MB以上のJPEGファイルをまとめて削除する例です。実行時には重要なファイルをうっかり消さないように注意が必要です。

# find /tmp -size +2048k -name *.jpg -exec rm -i {} \;
rm: remove regular file `/tmp/apple.jpg'?