Linuxはうっかりログファイルsyslogを削除してどのように回復します
システムが長く使用されると、ログ・ファイルの内容をクリーンアップする必要がありますが、ログ・コンテンツをクリーンアップするのではなく、不注意でログ・ファイルを削除する場合があります。この場合、どうすればいいですか?実は削除したログファイルsyslogは復元できるので、編集者に従って見てみましょう。
次に、Unbutuシステムを例に、誤って削除されたsyslogを復元する方法を説明します。まず、rootユーザで以下のlsofコマンドを実行し、/var/log/messagesファイルを開くプロセスのプロセスID(PID)をクエリーします。
root@ www.linuxidc.com :/var/log# lsof | grep messages
rsyslogd 544 syslog 7w REG 8,1 214641 134422 /var/log/messages
上記のコマンド出力から、このオープン/var/log/messagesファイルのプロセスのPIDは544であり、ファイル/var/log/messagesのファイル記述子(FD)番号は7であることがわかる。
上記のPIDとFDによれば、/procで対応するファイルを見つけることができます。
root@ www.linuxidc.com :/var/log#ls -al /proc/544/fd/7
l-wx------ 1 root root 64 2012-07-14 14:48 7 -》 /var/log/messages
ファイル/proc/544/fd/7を/var/log/messagesにコピー
cp /proc/544/fd/7 /var/log/messages
syslogサービスを再起動すると、誤って削除されたログファイルが復元され、新しいログレコードがログファイルに書き込まれ続けることができます。
rootユーザーでサービスコマンドを実行します。ここで、サービスコマンドの2番目のパラメータはsyslogであってもrsyslogであってもよい。
具体的にはコマンドクエリで知ることができます。
root@ www.linuxidc.com :/proc/544/fd# service --status-all
[ ? ] 。。。
[ ? ] rc.local
[ ? ] rsyslog
[ ? ] screen-cleanup
[ ? ] 。。。
root@ www.linuxidc.com :/proc/544/fd# service rsyslog restart
rsyslog start/running, process 2673
BTW、ログファイルを空にするコマンドは、次のとおりです。cat /dev/null》/var/log/messages
Linuxがログファイルsyslogを誤って削除する方法を紹介しましたが、本稿ではUbuntuを例に、他のシステムで参考にすることができます。次回ログファイルを整理するときは注意してください。