プロセスがまだファイルを使用している場合は、ファイルを復元します。

プロセスがまだファイルを使用している場合は、ファイルを復元します。

誤ってconfファイルの内容を削除する問題が発生しました。オンラインで見たcpとtailの回復プロセスを使用しようとしていますが、うまくいかないようです。ファイルはまだメモリにあります。

# ps aux | grep 'process'
root     30495  0.0  0.0  23660   728 ?        S     2015   0:17 /usr/local/sbin/file -C /etc/dir/file.cfg

/proc/pid の内容は次のとおりです。

ls -l /proc/30495/fd/0
lrwx------. 1 root root 64 Mar  7 11:35 /proc/30495/fd/0 -> socket:[1278416]

CP回復方法:

cp /proc/30495/fd/0 recovered.cfg
cp: cannot open `/proc/30495/fd/0' for reading: No such device or address

尾の回復:

tail -c +0 -f /proc/30495/fd/0 recovered.cfg
tail: cannot open `/proc/30495/fd/0' for reading: No such device or   address
tail: cannot open `recovered.cfg' for reading: No such file or directory

このファイルの内容をRAMから読み込むには他の方法がありますか?

ベストアンサー1

正しい回避策は、最後のバックアップからファイルを復元することです。

コピーは、現在のプロセスでファイルが開いている場合にのみ機能します。過去のある時点でプロセスによって開かれたが、今はもはや開いていないファイルに対しては何もできません。プログラムは設定ファイルを開いたままにする必要はありません。設定を読んだら、ファイルを閉じます。これにより、何も復元できなくなります。回復しようとしているファイルは無関係なファイルです。プロセスがリッスンしているネットワークソケットなので、そのソケットからデータを読み取ることはできませんが、これは役に立ちません。/proc/PID/fd/

gcore 30495 Mark Plotnickが提案したとおりプロセスのメモリイメージをファイルにダンプしますcore.30495。対応するメモリイメージを調べることができますが、希望を持たないでください。プロセスが構成ファイルを解析し、ファイルを保存したメモリを他の目的に再利用した可能性があります。構成ファイル全体がメモリーに完全に保存されておらず、以前のファイルで1つずつ上書きされることもあります。

あなたは試すことができます削除されたファイルの回復ツール。試してみたいならこのファイルシステムへの書き込みをすぐに停止します。:書き込みを行うたびに回復可能性が減少します。しかし、もう一度言うが、あまり期待しないでください。テキストファイルを見つけることは、干し草の山で針を見つけるのと同じです。何かを見つけると、以前のバージョンになる可能性があり、認識できないことが多いことに注意してください。

今後はぜひバックアップしておいてください。そして、設定ファイルをバージョン管理下に置き、リポジトリをバックアップします。

おすすめ記事