質問: ubuntu 12.04の容量がいっぱいになりました。 原因はとあるログファイルが設定ミスでログローテされていなくて、 それが何十GBにもなってしまったことです。 急いでrmで削除したのですが、 lsをすると削除されているようには見えるのですが、 dfをしても容量があいていないようです。 どこかに削除済みファイルとして残っているのでしょうか。 関係ないですが、apt-get cleanなど一般的なubuntuで容量を空ける方策は既に行いました。 よろしくお願い致します。
回答: unix 系の OS では、プロセスがファイルをつかむと、それ以降、iノード(ファイルのアドレスのようなもの)しか認識しなくなります。 rm コマンドというのは、ファイルシステム上、iノードとファイル名などを結び付けている領域から情報を削除するだけで、ファイルをつかんでいるプロセスが生き残っているうちは、ディスクの空き容量は増えません。 あるログファイルをつかんでいるプロセスを、一旦、終了してください。 そうすると、df コマンドで表示される空き領域が増えます。 ファイルをつかんでいるプロセスを停止できないケースも、運用中にはあったりします。 そういう場合には、ファイルを削除するのではなくて、ゼロバイトのファイルを上書きすることでファイルサイズを切り詰めます。 例えば、HOGE.log を小さくしたければ、そのファイルに書き込み権限があるユーザで、以下のようにやります。 ``` % cp /dev/null HOGE.log ```