Linux下误删文件恢复办法

时间:2021-06-27 17:34:17

恢复删除的文件


当误删除文件时,如果还有程序对此文件进行操作,那么可以通过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代表对是文件对描述符号。