ミリ秒単位で存在する一時ファイルの表示

ミリ秒単位で存在する一時ファイルの表示

必要な情報を記録しないプログラムをデバッグしようとしています。幸い、その情報を含める必要がある一時ファイルを作成します。ファイルはprogram/temp/{someGUID}10台のマシンのいずれかのディレクトリに書き込まれます。{someGUID}コンピュータを実行する前に、コンピュータまたは一時ファイルを含むコンピュータを知ることはできません。実行が完了すると、一時ファイルが削除されます。最初から最後までの時間は、人が介入するには速すぎます。

クライアントプログラムを介して実行を開始しますが、ファイルを書き込むのはサーバーです。サーバープログラムを操作することも、実行が開始されたら停止することもできません。一時ファイルに書き込むことができるすべてのコンピュータへのルートアクセス権があります。私はCentOS 6を使用しています。

サーバーユーザーが一時ディレクトリにファイルを書き込むことができますが、削除できないようにする方法はありますか?実行が中断される可能性がありますが、必要な情報を提供します。一時フォルダの内容を書いた直後/削除する前にコピーする方法はありますか?削除されたファイルを回復するには、プログラムをインストールする必要がありますか?

答え1

プログラムがアクセスするファイルのリストプログラムファイルへのアクセスを記録する方法はいくつかあります(straceLD_PRELOADLoggedFS、Audit)がありますが、ファイルの内容を取得する便利な方法はありません。

すべてのプログラム出力を保存する便利な方法は次のとおりです。ファイルのコピー。 CopyFSは、そのディレクトリツリーに存在していたすべてのファイルのすべての以前のバージョンを保持するディレクトリツリービューを作成します。これを使用するためにルートアクセスは必要ありません。一時ファイルを含むディレクトリをマウントします。

mkdir versions
copyfs-mount $PWD/versions $PWD/program/temp
program_to_debug
fusermount -u program/temp
ls versions

関連情報