2009-07-25 1 views
11

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

+0

Jus私はfilemonを知っていますが、Vistaのどのツールを参考にしていますか? –

+0

@ルードウィグのコントロールパネル - >管理ツール - >信頼性とパフォーマンスモニタ。次に、Diskというバーをクリックします。最もアクティブなファイルと、どのプロセスが読み書き中であるかを示します。 –

+0

すでにServerFaultにあります:http:// serverfault。com/questions/224629/see-what-files-are-like-iotop-for-for-files-not-processes –

答えて

3

lsofである:ここでは

は、いくつかのより多くの情報と例を持つサイトです。 これはコマンドラインツールですが、GUI for it at sourceforgeもあります。

+3

lsofはプロセスが開いているファイルを表示するだけです PiedPiper

3

特定の特定のディレクトリとその サブディレクトリに最後 24時間(最後のフルの日)に変更されたすべてのファイルを検索するには:

見つける/ 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/

+0

また、アクティビティを監視する方法もあります(kb/s )?サーバーはかなりアクティブであり、多くのファイルが変更されますが、私には最も高い転送を持つものが必要です... – smint

2

プログラムはわかりませんが、ユーティリティのfindコマンドには、一定期間内に修正されたファイルやディレクトリを見つけることができる多くのオプションがあります。例えば

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

が最後の1日前に変更されたテキストファイルを見つけるだろう。

あなたは何らかのスクリプトでこの呼び出しをラップするか、結果を使用するためにあなた自身のクイックアプリを書くことができます。あなたが探しているものを

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

1

Linuxには、コマンドラインユーティリティdnotifyとともに、 "dnotify"と呼ばれるファイル変更通知APIが用意されています。あなたはそれを使って過去30年の変化を追跡することができます。

おそらく、Linux APIに直接構築されたアプリケーションを作成し、30秒を超えるすべてのイベントを破棄します。

+0

ありがとう、私はすでに何かがあります既存の。 – smint

1

lsofのは、与えられたプロセスのために開いているすべてのファイルが一覧表示されます:-p

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

lsofを

あなたが見たい場合は、アプリケーションが読んで

+0

straceはプロセスツリー全体、または1つのプロセスだけで動作しますか? –

+0

これはツリー全体では機能しませんが、 '-p pid'オプションを使用して最大32個のプロセス – PiedPiper

+2

にアタッチするか、結果として現在トレースされているプロセスによって作成された子プロセスをトレースするために '-f' fork(2)システムコール – PiedPiper

5

をwritongされ、正確にどのファイルを紹介しますすべてのファイルにリアルタイムでアクセスします(最大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'` 
関連する問題