インフラエンジニアbacchiのわかったことまとめ

bacchi.me

i-nodeの使用量をディレクトリごとに出力する

i-nodeの空きがなくなり、dovecotのサービスが落ちてしまうトラブルがありました。

ディスクのi-node使用量はdfコマンドで知ることができます。

# df -i
Filesystem            Inodes  IUsed   IFree IUse% Mounted on
/dev/mapper/root
                     3276800 466270 2810530   15% /
tmpfs                 128814      1  128813    1% /dev/shm
/dev/vda1             128016     50  127966    1% /boot
/dev/mapper/home
                     3121152  53569 3067583    2% /home

しかし、dfコマンドはディスク全体のi-node使用量はわかっても、
各ディレクトリがどの程度i-nodeを使用しているかまではわかりません。

以下のワンライナーでカレントディレクトリ以下のディレクトリが
どの程度i-nodeを消費しているかわかります。

for dir in `ls -atl | grep -G "^d" | grep -v "./" | awk \'{print $9}\'`; do echo `find ./$dir -true | wc -l` `pwd`/$dir; done | sort -nr

df -iでiノードが減少しているディスクを探して
そこのディレクトリにcdし、肥大化しているディレクトリを調べる。
その肥大化しているディレクトリにcdして、いらないファイルを消す。

の繰り返しで、i-nodeを使いまくっている部分を調べて、対処することができます。

# for dir in `ls -atl | grep -G "^d" | grep -v "./" | awk \'{print $9}\'`; do echo `find ./$dir -true | wc -l` `pwd`/$dir; done | sort -nr
1195566 /home/mike
297540 /home/tora
235670 /home/kuro
19933 /home/shiro
19603 /home/sabatra
8397 /home/kijitora

ちなみにi-nodeがギリギリまで使われた原因はメールの溜まり過ぎでした。

メーラーの設定でサーバーにメールを残すようにしていて、ブクブクふくれあがっていました。

運用でカバーできないのであればquotaの設定等を適切に入れていかないとだめですね。

  • B!