使用lsof恢復誤刪除的檔案

壹頁書發表於2014-05-04

紅棗店鋪:
qq:45446263

1.建立一個檔案
[root@linux-5f160 script]# vi test.sh

sleep 3600

2.讓這個檔案在後臺一直執行
[root@linux-5f160 script]#nohup sh ./test.sh > test.log &
3.刪除檔案 test.sh

[root@localhost script]# rm -rf test.sh

4.透過lsof檢視程式以及檔案狀態
[root@linux-5f160 script]# lsof | grep test
sh        32332      root    1w      REG              253,7           0    6029319 /mysqldata/script/test.log
sh        32332      root    2w      REG              253,7           0    6029319 /mysqldata/script/test.log
sh        32332      root  255r      REG              253,7          11    6029323 /mysqldata/script/test.sh (deleted)
sleep     32333      root    1w      REG              253,7           0    6029319 /mysqldata/script/test.log
sleep     32333      root    2w      REG              253,7           0    6029319 /mysqldata/script/test.log

5.在/proc/程式ID/fd下面,會暫時保留著這個檔案
[root@linux-5f160 script]#cd /proc/32332/fd

[root@linux-5f160 fd]# ll
總用量 0
l-wx------ 1 root root 64 4月  29 14:06 0 -> /dev/null
l-wx------ 1 root root 64 4月  29 14:06 1 -> /mysqldata/script/test.log
l-wx------ 1 root root 64 4月  29 14:06 2 -> /mysqldata/script/test.log
lr-x------ 1 root root 64 4月  29 14:06 255 -> /mysqldata/script/test.sh (deleted)
[root@linux-5f160 fd]# more 255
sleep 3600
6.恢復檔案
[root@linux-5f160 fd]# cp 255 /mysqldata/script/test.sh

[root@linux-5f160 fd]#cd /mysqldata/script
[root@linux-5f160 script]# pwd
/mysqldata/script
[root@linux-5f160 script]# cat test.sh
sleep 3600
[root@linux-5f160 script]#

紅棗店鋪:
qq:45446263

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1153391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章