Linux下误删文件恢复办法

恢复删除的文件


当误删除文件时,如果还有程序对此文件进行操作,那么可以通过lsof 命令恢复文件内容。

举例:

误删粗messages日志文件

[root@cdn ~]# cat /var/log/messages |wc -l
20568
[root@cdn ~]# rm -f /var/log/messages
messages           messages-20171112  messages-20171119  messages-20171126  messages-20171203
[root@cdn ~]# rm -f /var/log/messages
[root@cdn ~]# cat /var/log/messages |wc -l
cat: /var/log/messages: 没有那个文件或目录
0
[root@cdn ~]#

 

lsof查看是否有进程在使用 messages日志文件 并恢复文件

[root@cdn ~]# lsof |grep /var/log/messages
rsyslogd   1108      root    1w      REG              253,1   1542042    1835105 /var/log/messages (deleted)
[root@cdn ~]# cat /proc/1108/fd/1 |wc -l
20629
[root@cdn ~]# cat /proc/1108/fd/1 > /var/log/messages
[root@cdn ~]# cat /var/log/messages |wc -l
20630
[root@cdn ~]#

1108 指的是进程id号, 1代表对是文件对描述符号。

原文地址:https://www.cnblogs.com/liuquan/p/7988680.html