現在、ハードドライブの空き容量が少ないDebianサーバーがあり、このlsof | grep deleted | less
コマンドを使用してすべてのスペースを使用しましたが解放されていない問題のあるファイルを見つけました。
in:imklog 462 518 root 7w REG 8,1 11199498620 1448243 /var/log/daemon.log (deleted)
99.999%の時間を再起動すると、これらのファイルが解放されることがわかりますが、これはお勧めできません。
以外のファイルを削除すると、logrotate
この問題が発生し、問題が解決します。しかし、私の質問は、再起動せずにアーカイブされたファイルを解放してスペースを解放できないことです。うん、どうですか?
よろしくお願いします。
答え1
ログファイルを開いたままにする場所(おそらく)にリロード/再起動するか、HUP
シグナル()を送信します。おそらくsystemdを実行しています。kill -1
rsyslogd
systemctl restart rsyslog.service
または/etc/init.d/rsyslog restart
走っている場合sysvinit
。
これにより、rsyslogdは設定ファイルを再ロードし、すべてのログファイルを閉じて再度開きます。
(注:ほとんどのデーモンでは、「reload」は設定ファイルを再ロードするか、ファイルを閉じて再開するために使用されるキーワードです。「restart」は停止して開始するために使用されます。何らかの理由で「restart」はrsyslogデーモンにHUPシグナルを送信してリロードをトリガーするためにdebian rsyslogパッケージで使用されます)
そのログファイルの開いたファイルハンドルを保持するプロセスがない場合、使用中のスペースは解放されます。