利用lsof恢复被误删除的文件
时间:2009-05-13 来源:zhaohang3031
恢复条件:有进程正在使用该文件
测试方法: 1.把系统日志文件messages文件删除
rm -f /var/log/messages 2.利用lsof来查找正在使用该文件的进程号等相关信息
lsof |grep messages
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
syslogd 2230 root 2w REG 253,0 209329 5586981 /var/log/messages 3.确认proc下的文件是否是我们要找回的文件
tailf /proc/2230/fd/2 (/proc/PID/fd/FD) 4.找回文件
cat /proc/2230/fd/2 >/var/log/messages 5.排除后患
该文件按以上方法被找会之后,原来写内容到该文件的进程将仍然把日志继续写入/proc/2230/fd/2,所以需要对该进程做重启操作。
比如上例,messages被删除重新找回之后,syslod进程不会再写内容到日志文件里了,必须运行用以恢复: service syslog restart
测试方法: 1.把系统日志文件messages文件删除
rm -f /var/log/messages 2.利用lsof来查找正在使用该文件的进程号等相关信息
lsof |grep messages
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
syslogd 2230 root 2w REG 253,0 209329 5586981 /var/log/messages 3.确认proc下的文件是否是我们要找回的文件
tailf /proc/2230/fd/2 (/proc/PID/fd/FD) 4.找回文件
cat /proc/2230/fd/2 >/var/log/messages 5.排除后患
该文件按以上方法被找会之后,原来写内容到该文件的进程将仍然把日志继续写入/proc/2230/fd/2,所以需要对该进程做重启操作。
比如上例,messages被删除重新找回之后,syslod进程不会再写内容到日志文件里了,必须运行用以恢复: service syslog restart
相关阅读 更多 +