問題
ファイルの操作、ファイル名の補完などをしようとすると以下のようなエラーで操作ができなくなってしまう。
- No space left on device
- ヒアドキュメント用一時ファイルを作成できません: デバイスに空き領域がありません
対応
1.ディスク容量を確認し、容量を使っているファイルを以下のコマンドで探して削除。(今回はログファイルが容量を使っていた。)
sudo du -x / | sort -n | tail -40
2.1で改善されなかったのでさらに調査。inode(作れるファイル数の上限)がいっぱいになっている可能性があるため以下のコマンドで確認
df -i
3.inodeがいっぱいになっていることがわかったので、以下のコマンドでカレントディレクトリに存在するファイル数を計算して不要なファイルを削除していく。
sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
まとめ
- 「No space left on device」など、容量不足のエラーが出た場合は容量だけでなくファイル数が原因の可能性がある。
- 今回はそこまで多くのファイルを削除していないが、急に解消された。容量の多いファイルを削除->ファイル数の削減の順番で行ったため急に再計算された?
- インスタンスを再起動したら解消されるという記事も散見されるため試す価値はあり。