ファイル変更の監視+ファイルへのプロセスアクセス


19

私のアプリサーバーフォルダで何が起こっているのか、つまり、どのファイルがプロセスxによって変更されたのか*.war、最後のx分間にどのファイルが変更(置換/作成)されたのかを見たいです。

Linuxにこれを支援するツールはありますか?


こんにちはこのガイドを見て、ディレクトリとファイルを監視するためにauditdを設定してくださいxmodulo.com/how-to-monitor-file-access-on-linux.html
Sifungurux

1
私は、Google検索を経由して、この問題になったが、私はここに私の答えを見つけた:unix.stackexchange.com/questions/18844/...
クエンティンSkousen

SystemTapをご覧ください。uselessuseofcat.com/?p=281
スティーブ

回答:



14

Strace(上記で概説)は、指定された実行中のソフトウェアのアクションをチェックする1つの方法です。

いくつかのコマンドwatch find dir/ -mmin 1は、あるディレクトリで過去1分間の変更を確認するのにも役立ちます。

まさにあなたが探しているものに応じて、inotify-toolsはおそらくここで別の取引ツールです。

たとえばinotifywait -mr dir/、指定されたディレクトリの変更を監視し、ファイルを開いたり、読み取ったり、書き込んだり、閉じたりしようとしているアプリケーションのフィードバックを即座に提供します。ただし、inotifyは、どのアプリケーションまたはプロセスがファイルにアクセスしているかについてのフィードバックを提供しません-それはstraceが行うことです。

通常、システムレベルの監視は、アプリケーションコンテナ環境で実行されているJavaソフトウェアの使用に限定されます。コンテナ(たとえばTomcat)のみが表示され、実際のアプリケーション(たとえば.war)はシステムと対話しません。


8

lsofにより、プロセスがアクセスしたファイルに関する情報を取得できます。

 lsof -n -p `pidof your_app`

そしてその逆、あなたはいくつかのファイルに読み書きするプロセスのpidを得ることができます:

 lsof -n -t file

6

straceすべてのファイルアクセスを含むプロセスのすべてのシステムコールを監視するために使用できます。

プログラムを開始するとき:

$ strace ./myserver

PID経由で実行中のプロセスにstraceを添付することもできます。

$ ps aux | grep myserver
me      1859  0.0  0.0  25288   424 ?        Ss   Sep02   0:00 myserver
$ strace -p 1859

PIDではなくフォルダごとに監視することもできます。ありがとうございます。btw strace -p PIDはUbuntuで機能します。
マーティンV.

0

watch find dir/ -mmin 1 私のために機能しませんでした、何が単にコピーと差分でした:

cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir

かなりリソースを消費しますが、スナップショットとdiff時間の間のすべての変更を表示します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.