前提:只能被删除但是仍然open的文件,即引用文件进程存在。
场景:
当服务器受到入侵,重要文件被删除,无法排查入侵。或者误删除掉文件。本文以messages日志被删除举例。
操作:
1、查看日志是否还存在
ls /var/log/messages
2、 文件没了,眉头一皱,查看引用文件进程是否还存在
lsof |grep /var/log/messages
瞬间大喜,记下了进程pid,然后查看了fd(进程标识符)ll /proc/406113/fd
很快奥,你看到了文件设备符7 指向的是/var/log/messages 且有个deleted的标识
3、恢复文件
有两种方式。1.重定向写入 2.cp复制
重定向写回
cat /proc/406113/fd/7 >/var/log/messages
复制写回
cp /proc/406113/fd/7 /var/log/messages