UNIX ホスト上のすべてのファイル変更の追跡

UNIX ホスト上のすべてのファイル変更の追跡

私はツールを評価しており、このアプリケーション(pipを使用してインストール)によって追加、変更、または削除されたすべてのファイル(システム構成ファイルを含む)を識別する必要があります。

外部ホストにインストールすると、すべての変更を追跡して、追跡された変更を介してアプリケーションを別の場所にインポートできます。

私はアプリケーションやインストールログを見つけるのではなく、このインストールとそのア​​プリケーションの変更を探しています。

これは、評価中のアプリケーションの影響を監査するのにも役立つシナリオです。

1つの可能な解決策はfswatch(https://www.ostechnix.com/monitor-file-changes-using-fswatch-linux/)、しかしルートディレクトリを監視することはできません。

10年前、Norton CleanSweep(https://en.wikipedia.org/wiki/Norton_CleanSweep)は、インストールアプリケーションを監視し、このインストールによって追加されたすべてのファイルとレジストリエントリを追跡して、追跡されたインストールを完全に削除できます。これが私が探しているものですが、Unixボックスの場合(Debianベースのディストリビューションは完璧です)

UNIXホストのすべての変更を追跡するために使用できるアイデアはありますか?

答え1

fswatchはrootディレクトリを提供するときにジョブを正しく処理しないため、inotifywait(https://linux.die.net/man/1/inotifywait)利用可能です。

ファイルの変更を待つためにinotifyを使用してください。次のコマンドを使用できます。

sudo inotifywait -m -r --exclude "(/tmp.*|/var/cache.*|/dev/pts/|/var/log.*)"  -e MOVED_TO -e CREATE -e CLOSE_WRITE -e DELETE -e MODIFY -o /tmp/my_tracked_install_files /

どこ

  • -m:モニターモードを使用する
  • -r:再帰パス
  • --excludeは、正規表現を使用して特定のディレクトリ(一時ディレクトリ、ログディレクトリ、および/ dev / ptsには不必要な変更が多いため、これらのディレクトリ)でイベントを監視しません。
  • -e MOVED_TO、CREATE、CLOSE_WRITE、DELETE、および MODIFY: 興味のある唯一のイベント (inotifywait は、リストを含むあらゆるタイプのファイルシステムイベントをキャプチャします)
  • -o: 出力ファイル

inotifywaitは他のホストで作成されたnfsファイルをキャプチャしません。

inotifywatchesの数を増やす可能性が高いです(例:https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linux)

cat /proc/sys/fs/inotify/max_user_watches # default is 8192
sudo sysctl fs.inotify.max_user_watches=1048576 # increase to 1048576

関連情報