現象
- しばらくすると容量が100%で、ファイル・ディレクトリの作成などのコマンド実行時に以下のエラー
No space left on device
- 不要なファイルを削除しても、1週間ほどでまた容量が100%に達する。
結論
プロセスが、削除済みのファイルをつかんでいる。
以下のコマンドで、削除済みのファイルに絞り込んで検索できます。
# lsof -| grep deleted
原因
今回の場合、ログローテーション後のhttpd再起動コマンドの記述ミスです。
ローテーションによって削除されたファイルにhttpdがログを書き込み続けている。
以下で、一旦消えますが、再起動コマンドの修正をしないとまた100%に達します。
# service httpd reload
容量の確認方法
システム内の空き容量の確認
$ df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/nvme0n1p1 40G 40G 0 100% /
フォルダ容量確認
$ du -h /
~ ~ ~ ~
20G .
ん、、20GB なのに、100%???
du と df の結果が違う。。
原因
ログローテーション設定ファイルの、httpd再起動コマンドの修正
私が担当する前にサーバーの移行作業があったようで、
OSのバージョンアップに伴い、再起動コマンドの書き方が変わっていました。
が、容量がいっぱいになるまで誰も気が付かず100%に。という状態です。
対処法
・httpdの再起動後、ログローテション設定ファイルを書き直し。
修正後の確認事項
今回の場合は以下の項目を確認し、問題なければ大丈夫だと思います。
- ログローテーションファイルに記載したhttpd再起動コマンドで、httpdが再起動されることを確認
- 容量の確認。
- ローテンション後の容量の確認。