アプリサーバーフォルダーで何が起こっているか、つまり、プロセスxによって変更されたファイルまたは*.war
ファイルは過去x分間に変更(置換/作成)されました。
Linuxにこれを支援するツールはありますか?
正確なニーズによっては、 inotify または [〜#〜] fam [〜#〜] / [〜#〜 ] gamin [〜#〜] ソリューション。
Strace(上記で概説したとおり)は、指定した実行中のソフトウェアのアクションをチェックする1つの方法です。
watch find dir/ -mmin 1
のようないくつかのコマンドは、いくつかのディレクトリで過去1分間の変更をチェックするのにも役立ちます。
あなたが探しているものに応じて、 inotify-tools はおそらくここでのもう一つの取引ツールです。
たとえば、inotifywait -mr dir/
は、指定されたディレクトリの変更を監視し、ファイルを開封/読み取り/書き込み/クローズしようとするアプリケーションのフィードバックを即座に提供します。ただし、inotifyはどのアプリケーションまたはプロセスがファイルにアクセスしているかについてのフィードバックを提供しません-これはstraceが行うことです。
システムレベルの監視は通常、Javaソフトウェアが一部のアプリケーションコンテナー環境で実行されているソフトウェアでは限定的に使用されます。実際のアプリケーション(例:Tomcat)ではなくコンテナー(Tomcat)のみが表示されるためです。 .war))システムとの対話。
lsof によって、プロセスがアクセスしたファイルに関する情報を取得できます。
lsof -n -p `pidof your_app`
そしてその逆では、いくつかのファイルに書き込み/読み取りするプロセスのpidを取得できます:
lsof -n -t file
strace
を使用して、すべてのファイルアクセスを含むプロセスのすべてのシステムコールを監視できます。
プログラムを開始するとき:
$ strace ./myserver
straceをそのPIDを介して実行中のプロセスにアタッチすることもできます。
$ ps aux | grep myserver
me 1859 0.0 0.0 25288 424 ? Ss Sep02 0:00 myserver
$ strace -p 1859
watch find dir/ -mmin 1
は私にはうまくいきませんでした。何が起こったのかは単にコピーして比較することでした:
cp -r dir /tmp/olddir
# initialize/whatever
diff -r dir /tmp/olddir
これはかなりのリソースを消費しますが、スナップショットとdiff
時間の間のすべての変更を示します。