はじめに
Bind on unix socket: No space left on device
とか
Error: unable to create temporary file; errno: 28
とか
Can't create/write to file '/tmp/#xxxx' (Errcode: 28)
とか
ディスク容量不足系エラーが出るけど、dfしたらディスク容量には余裕がある!
どうしたらいいんだ!
という人向け
結論
①書き込み先ディレクトリの権限がない
②inodeが枯渇している
だいたいどっちか
①書き込み先ディレクトリの権限がない
1.パーミッションの確認
# ls -ld /tmp
dr-xr-xr-x. 11 root root 4096 Aug 21 04:08 /tmp
2.フルパーミッションの付与
# chmod 1777 /tmp
3.パーミッションの確認
# ls -ld /tmp
drwxrwxrwt 3 root root 4096 Aug 21 04:08 /tmp
これでだいたいなんとかなるはず
なんとかならなかった人は②へ
②inodeが枯渇している
1.dfで容量の確認
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 8123812 4815712 3207852 61% /
tmpfs 508628 0 508628 0% /dev/shm
2.df -i でinode利用量の確認
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/xvda1 6406144 6406144 0 100% /
tmpfs 127157 1 127156 1% /dev/shm
3.どのディレクトリがinodeを使い込んでいるのか確認
# for i in /*; do echo $i; find $i |wc -l; done
または
# echo "==== `pwd` ====" ; for i in `ls -1`;do echo -n "## $i ### " ; echo "(`find ./$i -type f |wc -l`)" ;done | sort -r
==== /var ====
4.怪しい奴を見つける
/foo
1
/piyo
2
/hoge
6370020
5.原因のディレクトリのファイルを削除
# rm -rdf /hoge/*
だいたいLogかMailが原因なので、そこらへんに当たりをつけると探しやすいかもです。
cf.
Linuxでディスクが一杯になった時の対処法 - Qiita
http://qiita.com/masarufuruya/items/0c794083fc4ea03cd9f9
inodeとは/inode消費が多いディレクトリの確認
http://tagutagu.com/?page_id=985