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