51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux中如何巧妙恢复被进程锁定的已删除文件

Print Friendly, PDF & Email

一、模拟场景 {#一、模拟场景}

(1)编写脚本test_del.sh,并执行

脚本内容

#!/bin/bash

while true; do


sleep 10000000

`done`

(2)删除执行中的脚本

[root@dameng linuxscript]# rm test_del.sh 
rm: remove regular file 'test_del.sh'? yes
[root@dameng linuxscript]#

二、恢复过程 {#二、恢复过程}

(1)查看进程状态

[root@dameng linuxscript]# lsof | grep -i delete | grep test_del.sh
test_del. 85885                    root  255r      REG              253,1         52     524386 /root/linuxscript/test_del.sh (deleted)
  • test_del:进程名
  • 85885:进程号

(2)寻找进程文件

[root@dameng linuxscript]# cd /proc/85885/fd

如图

图中能够看到对应deleted状态的程序(闪烁)。

(3)恢复进程文件

[root@dameng fd]# cat 255 >~/linuxscript/test_delv2.sh
[root@dameng fd]# ll ~/linuxscript/test_delv2.sh 
-rw-r--r-- 1 root root 52 Dec 13 10:06 /root/linuxscript/test_delv2.sh

(4)查看恢复的脚本文件

[root@dameng fd]# cat ~/linuxscript/test_delv2.sh
#!/bin/bash

while true; do


sleep 10000000

`done`

恢复的脚本文件和初始执行的脚本文件一致,恢复文件成功。

赞(0)
未经允许不得转载:工具盒子 » Linux中如何巧妙恢复被进程锁定的已删除文件