![アプリケーションを実行してどのファイルが作成、読み取り、または更新されるかを知る方法はありますか? [コピー]](https://linux33.com/image/80314/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%A9%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E4%BD%9C%E6%88%90%E3%80%81%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%82%8B%E3%81%8B%E3%82%92%E7%9F%A5%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
実行中のアプリケーションで読み取った、生成、更新したすべてのファイルを一覧表示したいと思います。
答え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'
....