Ubuntuでファイル操作をしようとすると、「No space left on device」と言われた
新しいファイルの生成が全くできない状態になってしまった
調査
エラーは、No space left on device
おそらく容量が足りないんだろうとあたりをつけた
df -h
df
コマンドを使用して、HDD容量を調べる
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 44G 3.4G 93% /
かなり圧迫してはいるが、容量は余っている…
df -i
色々調べているうちに、容量ではなくてinodeが足りない説が出てきた
恥ずかしながら、今までinode
というものを知らなかった
inode番号とは
主にUNIX系で使われる、inode(ファイルやディレクトリの属性情報が書いてあるデータ)に割り当てられる番号
であり
inodeを識別するための番号
です。
https://wa3.i-3-i.info/word14803.htmlwa3.i-3-i.info
とのこと
残りinodeはdf
コマンドに-i
オプションをつければ確認できるらしいので、確認してみると…
$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vda1 3276800 3276799 1 100% /
これが原因くさいぞ…
解決
上記の原因から、減らすのは容量ではなくファイル数であることがわかった
必要のないlogファイル等を削除していくと、解決した
メモ
以下のコマンドを実行すると、カレントディレクトリに存在するファイル数を再帰的に計算してくれる
ルートディレクトリで叩くと計算量すごくてやばくなりそうなので注意
$ sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n