「/proc」の情報からファイルを回復する方法はありますか? [コピー]

「/proc」の情報からファイルを回復する方法はありますか? [コピー]

今インタビューで尋ねた。誰かが/var/log/apache/access.logApacheログファイルの作成中に誤って削除した場合は復元できますか?

私の答えの後、インタビューはinodeファイルシステムからApacheプロセスの詳細を回復し、/procファイルを回復できると言いました。電話通話なので正しく理解できませんでした。

だから誰かがこれを説明できますか?

答え1

残念ながら、新しい名前をファイルシステムのinodeに関連付ける方法はありません。

ただし、ファイルの内容を新しいファイルにコピーできます。

# in shell 1
bash -c 'echo $$; exec cat >delfile'
27225

したがって、ファイルを開いたままにしているプロセスのPIDを確認する必要があります。次に、削除されたファイルのファイル記述子を確認します。

# in shell 2, same directory
$ rm delfile
$ ll /proc/27225/fd
insgesamt 0
lrwx------ 1 hl hauke 64 20. Jun 00:38 0 -> /dev/pts/4
l-wx------ 1 hl hauke 64 20. Jun 00:38 1 -> '/crypto/home/hl/tmp/delfile (deleted)'
lrwx------ 1 hl hauke 64 20. Jun 00:38 2 -> /dev/pts/4

その後、コンテンツをコピーできます。

cp /proc/27225/fd/1 restored_file

関連情報