14

IOStatで、アプリケーションの一部が広範囲に書き込みを行っていることがわかりましたが、それがどのプロセスであり、どのファイルに書き込みを行っているのかわかりません。Vistaには、過去30秒間にアクティブになっているファイルを表示するツールがあります。Linuxに似たものはありますか?

4

7 に答える 7

9
strace -e trace=file -- <command>

アプリケーションが読み取って書き込んでいるファイルを正確に表示します

于 2009-07-25T22:45:57.490 に答える
8

すべてのファイルアクセスをリアルタイム(最大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'` 
于 2012-07-25T10:30:26.590 に答える
3

特定の特定のディレクトリとそのサブディレクトリで過去24時間(過去1日)に変更されたすべてのファイルを検索するには、次の手順に従います。

/ directory_path -mtime-1-printを検索します

詳細:

http://www.mydigitallife.info/2006/01/19/find-files-that-are-modified-today-or-since-certain-time-ago-in-unix/

于 2009-07-25T20:54:53.503 に答える
3

あなたが探しているのはですlsofこれはコマンドラインツールですが、sourceforgeにそのためのGUIもあります。

于 2009-07-25T21:00:22.197 に答える
3

lsofは、特定のプロセスで開いているすべてのファイルを一覧表示します。

lsof -p

于 2009-07-25T21:06:12.433 に答える
2

プログラムはわかりませんが、ユーティリティのfindコマンドには、特定の期間内に変更されたファイルやディレクトリを検索できる多くのオプションがあります。

例えば:

$ find /home/you -iname "*.txt" -mtime -1 -print

1日前に最後に変更されたテキストファイルを検索します。

この呼び出しをある種のスクリプトでラップするか、結果を使用するための独自の簡単な小さなアプリを作成することができます。

ここにいくつかのより多くの情報と例があるサイトがあります:

http://www.cyberciti.biz/faq/howto-finding-files-by-date/

于 2009-07-25T20:57:24.527 に答える
1

Linuxは、コマンドラインユーティリティdnotifyとともに、「dnotify」と呼ばれるファイル変更通知APIを提供します。これを使用して、過去30年間の変更を追跡できます。

Linux APIを直接構築し、30秒より前のすべてのイベントを破棄するアプリケーションを作成するでしょう。

于 2009-07-25T21:03:30.927 に答える