アプリケーションを実行してどのファイルが作成、読み取り、または更新されるかを知る方法はありますか? [コピー]

アプリケーションを実行してどのファイルが作成、読み取り、または更新されるかを知る方法はありますか? [コピー]

実行中のアプリケーションで読み取った、生成、更新したすべてのファイルを一覧表示したいと思います。

答え1

答えは中ですプログラムI/Oモニタリング多くのUnix opensnoop(Solarisだけでなく)で使用できます。

答え2

プロセスに必要なすべての情報を1か所で提供するアプリやツールはありません。しかし、いくつかの事実を知ることはLinuxそれほど価値があります。まず、すべてが一つですfile。情報を取得するためにファイルを簡単に分類できるので、これは良い方法です。 2つ目は、プロセスに必要なすべての情報がそこにあることです/proc。親プロセスがある場合は、PIDそこでプロセスに必要なものを見つけることができます。私はお勧めしますman proc

答え3

プロセスIDを取得します(firefoxたとえば、2番目は検索自体をgrep隠すことです)。grep

ps aux | grep firefox | grep -v grep

次のような結果が得られます。

<login>  <pid> .... /path/to/program

だからあなたはfile実行することができます/proc/pid/fd/*

file /proc/1809/fd/*

次のような結果が得られます。

....
/proc/1809/fd/94:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/formhistory.sqlite' 
/proc/1809/fd/96:  symbolic link to `/home/pp/.mozilla/firefox/79bmloy7.default/signons.sqlite' 
....

関連情報