windows下如果文件被删除还有回收站,如果没放入回收站或者回收站被清空了,还可以使用easyrecover或者finaldata等等很多工具来恢复;
可是linux下没有回收站,那么linux下如果文件被删除了如何恢复呢?如果刚好你删除的文件还在被其它程序调用,那么恭喜你,很轻易的的将删除的文件找回来
我们先手工来删除我们的日志文件/mnt/ramdisk/messages,删除前我们显卡一下这个文件的内容
02 |
Sep 23 13:51:56 test icinga: Icinga 1.7.0 开始... (PID=4692)
|
03 |
Sep 23 13:51:56 test icinga: 本地时间 周一 2013年09月23日 13时:51分:56秒 CST
|
04 |
Sep 23 13:51:56 test icinga: 日志版本: 2.0
|
05 |
Sep 23 13:51:57 test icinga: https://www.icinga.org)
|
07 |
Sep 23 13:51:57 test icinga:
|
09 |
Sep 23 13:51:57 test icinga:
|
10 |
Sep 23 13:51:57 test icinga:
|
11 |
Sep 23 13:51:57 test icinga:
|
12 |
Sep 23 13:51:57 test icinga: 完成守护进程... (新 PID=4693)
|
13 |
Sep 23 13:51:57 test icinga: Event loop started...
|
然后删除这个文件
3 |
ls :/mnt/ramdisk/messages: No such file or directory
|
文件已经不存在了
这时候我们通过lsof命令查询一下系统当前的文件打开信息(若没有直接yum instal -y lsof安装即可)
|
[root@test ~]# lsof |grep message
syslogd <span style="color: #ff0000;">3558</span> root <span style="color: #008000;">2</span>w REG 0,20 79353857 8837 <span style="color: #800080;">/mnt/ramdisk/messages (deleted)</span>
syslogd 3558 root 3w REG 253,0 0 3578692 /var/log/messages (deleted)
[root@test ~]#
|
看到我们刚才删除的文件 /mnt/ramdisk/messages,并且状态时deleted,目前调用的进程是3558,目录是2
这时候/proc/3558/fd/2就是我们删除的文件/mnt/ramdisk/messages了
拷贝回去并查看内容验证:
03 |
Sep 23 13:51:56 test icinga: Icinga 1.7.0 开始... (PID=4692)
|
04 |
Sep 23 13:51:56 test icinga: 本地时间 周一 2013年09月23日 13时:51分:56秒 CST
|
05 |
Sep 23 13:51:56 test icinga: 日志版本: 2.0
|
06 |
Sep 23 13:51:57 test icinga: https://www.icinga.org)
|
07 |
Sep 23 13:51:57 test icinga:
|
08 |
Sep 23 13:51:57 test icinga:
|
09 |
Sep 23 13:51:57 test icinga:
|
10 |
Sep 23 13:51:57 test icinga:
|
11 |
Sep 23 13:51:57 test icinga: 完成守护进程... (新 PID=4693)
|
12 |
Sep 23 13:51:57 test icinga: Event loop started...
|
文件回来了~~