一、模拟场景 {#一、模拟场景}
(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`
恢复的脚本文件和初始执行的脚本文件一致,恢复文件成功。