プロセスが掴みっぱなしの削除済ファイルを取り出す
ファイルを作成して、lessで掴む
$ echo 'dummy data' > example.txt $ less example.txt
別ターミナルで、掴んだファイルを消す
$ rm example.txt
削除済のファイルを掴んでいることを確認できる
$ ps a | grep less 23249 pts/14 S+ 0:00 less example.txt 23290 pts/15 S+ 0:00 grep --color=auto less $ lsof -p 23249 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME # 略 less 23249 kinosuke01 4r REG 253,1 11 46213308 /home/kinosuke01/example.txt (deleted)
/proc/${PID}/fd/${FDの数値}
配下に掴んでいるファイルが有ることを確認する
$ ls -la /proc/23249/fd/4 lr-x------ 1 kinosuke01 xxxxx 64 4月 22 17:51 /proc/23249/fd/4 -> /home/kinosuke01/example.txt (deleted)
cpコマンドで救出できる(-aオプションをつけると駄目らしい)
$ cp /proc/23249/fd/4 ~/exmaple.saved.txt $ cat ~/exmaple.saved.txt dummy data
参考
https://www.itmedia.co.jp/enterprise/articles/0611/30/news007.html