IOStatで、アプリケーションの一部が広範囲に書き込みを行っていることがわかりましたが、それがどのプロセスであり、どのファイルに書き込みを行っているのかわかりません。Vistaには、過去30秒間にアクティブになっているファイルを表示するツールがあります。Linuxに似たものはありますか?
7 に答える
strace -e trace=file -- <command>
アプリケーションが読み取って書き込んでいるファイルを正確に表示します
すべてのファイルアクセスをリアルタイム(最大32プロセス)で確認したい場合は、次のコマンドを使用できます。
strace -f -e trace=file `ps aux | tail -n +2 | awk '{ORS=" "; print $2}' | sed -e 's/\([0-9]*\)/\-p \1 /g' | sed -e 's/\-p $//g'`
特定の特定のディレクトリとそのサブディレクトリで過去24時間(過去1日)に変更されたすべてのファイルを検索するには、次の手順に従います。
/ directory_path -mtime-1-printを検索します
詳細:
あなたが探しているのはですlsof。これはコマンドラインツールですが、sourceforgeにそのためのGUIもあります。
lsofは、特定のプロセスで開いているすべてのファイルを一覧表示します。
lsof -p
プログラムはわかりませんが、ユーティリティのfindコマンドには、特定の期間内に変更されたファイルやディレクトリを検索できる多くのオプションがあります。
例えば:
$ find /home/you -iname "*.txt" -mtime -1 -print
1日前に最後に変更されたテキストファイルを検索します。
この呼び出しをある種のスクリプトでラップするか、結果を使用するための独自の簡単な小さなアプリを作成することができます。
ここにいくつかのより多くの情報と例があるサイトがあります:
Linuxは、コマンドラインユーティリティdnotifyとともに、「dnotify」と呼ばれるファイル変更通知APIを提供します。これを使用して、過去30年間の変更を追跡できます。
Linux APIを直接構築し、30秒より前のすべてのイベントを破棄するアプリケーションを作成するでしょう。