测试环境: 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 ,都恢复不了。其他的自己可以试试。