移動したファイルに書き込まれたデータの回復

移動したファイルに書き込まれたデータの回復

セッションの開始時にファイルを開き、ファイルに書き続けるPythonデーモンがCentOSで実行されています。

ただし、cronjobが作成しているファイルをgzipに圧縮し、ファイルをlog.txtからlog.txt.gzに移動しました。しかし、デーモンは引き続きlog.txtに書き込みます。その後、デーモンが停止し、log.txt ファイル記述子を閉じます。

log.txt.gzにファイルを移動した後、デーモンがlog.txtに書き込んだデータを復元する方法はありますか?

ベストアンサー1

AFAICT、いいえ。問題は、gzipプロセスが新しいファイルを作成したりディレクトリから削除したりするなど、古い(圧縮解除された)ファイルを解放することです。ファイルシステムにファイルを指す他のハードリンクがない場合、ファイルを参照する最後のファイル記述子が閉じられると、ファイルが失われます。

将来的には、両方のプロセスが同時にファイルにアクセスする(書き込みおよび削除するため)、代わりにファイルリソースへのアクセスを同期することをお勧めします。

gzip別のオプションは圧縮コピーを作成することです。ただし、ファイルに書き込まれたすべての内容がファイルに含まれていない競合状態が発生しますgz

おすすめ記事