測試環境: centos 6.3
日誌文件是我們用來查看服務器運行情況的重要依據,但是有時人爲的,不小心或故意刪除日誌,所以恢復被刪除的日誌就非常重要。我們知道,程序運行時,所需要的數據會存放在內存裏,根據這個原理,我們可以使用lsof 程序來恢復日誌文件。具體操作如下:
首先: 安裝lsof ,在centos6.3中,可以直接yum -y install lsof
其次: 查看該日誌文件被哪個程序所用,記下PID,現在我們以/var/log/messages 日誌文件爲例,
先人爲刪除 rm -f /var/log/messages
查看被哪個程序所用 lsof | grep /var/log/messages
顯示如下:
rsyslogd 1175 root 1w REG 253,0 41146 1981518 /var/log/messages (deleted)
PID=1175
現在我們進入 cd /proc/1175/fd (1175爲PID值)
這個文件夾下有多個用數字命名的文件,這些數字是文件描述符,如上紅字,我們這裏的文件描述符是1,
現在恢復日誌
cat 1 > /var/log/messages
日誌文件就得以恢復
其他配置文件好像用這種方法恢復不了,我試了lamp ,都恢復不了。其他的自己可以試試。