Apache2がインストールされたVMがあり、ログローテーションのインストールを忘れ、Apache2から24GBのログを取得し、この24GBのログファイルを削除しましたが、ディスクには何も起こりませんでした。削除していないかのようにログはまったくありません。 。何が起こるのか理解している人はいますか?
root@Web:~# cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"
root@Web:~# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 27G 675M 98% /
none 744M 176K 744M 1% /dev
none 748M 0 748M 0% /dev/shm
none 748M 568K 748M 1% /var/run
none 748M 0 748M 0% /var/lock
none 748M 0 748M 0% /lib/init/rw
none 29G 27G 675M 98% /var/lib/ureadahead/debugfs
root@Web:~# du -kh /var/log/apache2
24G /var/log/apache2
root@Web:~# rm /var/log/apache2/*
root@Web:~# du -kh /var/log/apache2
4.0K /var/log/apache2
root@Web:~# df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 27G 673M 98% /
none 744M 176K 744M 1% /dev
none 748M 0 748M 0% /dev/shm
none 748M 568K 748M 1% /var/run
none 748M 0 748M 0% /var/lock
none 748M 0 748M 0% /lib/init/rw
none 29G 27G 673M 98% /var/lib/ureadahead/debugfs
答え1
これは、実際にファイルを削除していないためである可能性が高いです。
私が考えていることは次のとおりです。
- ログファイルを生成し、ファイルハンドルを使用してログファイルにプログラム(読み取り:Apache)を書き込みます。
ファイルはディレクトリリストにも表示されます。 rm
次の方法でファイルを削除しようとしています。そしてApacheはまだそれを開きます。- 今、これらのファイルは部分的に削除されました。ディレクトリのリストが消えました。ただし、ファイルはまだ存在し、そのファイルへのすべてのハンドルが閉じられるまでディスクに残ります。
最も簡単な方法は、SIGHUP信号をApacheに送信してApacheを再起動することです。 (HUPをApacheに送信すると正常に再起動するように求められます。これによりログファイルが閉じるか再開されます。)次のコマンドを送信しますkill -1
(参照:人々を殺すより多くの情報を知りたい場合)。
答え2
ログを削除しましたが、Apacheはファイルを開いたままにしました。
再ロードせずに再起動すると、そのスペースが回収されます。
次回は、> logfile
ログを削除する代わりにログを使用または切り捨てることができます。cat /dev/null > logfile