変更されたファイルをリアルタイムで検索しますか?

変更されたファイルをリアルタイムで検索しますか?

特定の瞬間にファイルを生成するすべてのアプリケーションでファイル(特にログファイル)を追跡する必要があります。これらのファイルの名前は任意に指定できます(logファイル名やパスに必ず含める必要はありません)。

私はfswatch -r /次のことを処理するためにgrepを使用すると思います。

fswatch -r / | egrep --line-buffered -iv "//run|//sys"

しかし、私はそれが私が言及した目標について目立つ結果を提供しないことを発見しました...

...
inotify_add_watch: No space left on device
inotify_add_watch: No space left on device
inotify_add_watch: No space left on device
/
/
/
/
^C
$

この場合、どのように機能しますか?私は実際にそれをやっているわけではないfswatchので、いつでもそのようなファイルを修正する方法を見つけることができるアイデアやソリューションに開いています。

コンソールに表示されるものを見ると、かなり早く見つけることができるので、「噴出」にはあまり興味がありませんが、ハッキングできるようにFSで何が起こっているのかを知りたいだけです。重要なことではありません。

答え1

をインストールして設定しますincrontab

incronは、ファイルシステムイベントを監視し、システムテーブルとユーザーテーブルで定義されているコマンドを実行するデーモンプロセスです。

ファイルを編集するには、以下にユーザーを追加してください/etc/incron.allow(ユーザーを許可するincrontabincrontab -e

使用法:

path mask command

path=ファイルパス

mask=参照man inotify | less +/'inotify events'

command=実行するコマンド、あなたの場合は結果をフィルタリングして、syslogファイルが変更された正確な時間を知ることができるメッセージかもしれません。

e,g:a をモニターするには、以下をfile使用します。

/path/to/file IN_MODIFY "message: your file is accessed"

変更を介してファイルにアクセスしたら、次のメッセージを検索するか、/var/log/syslog次のように入力します。jounalctl -xe

出力例:

# grep "message: your" /var/log/syslog

Nov 22 10:05:04 hostname incrond[2263]: (USER) CMD ("message: your file is accessed")

編集する

特定のフォルダの下のすべてのファイルを監視できます。これは、次のことができるサンプルメッセージです。 更新中のすべてのファイルのリスト:

path/to/folder IN_MODIFY echo "$$ $@ $# $% $&"

コマンドには、次のワイルドカード文字を含めることができます。

$$ - a dollar sign
$@ - the watched filesystem path (see above example)
$# - the event-related file name
$% - the event flags (textually)
$& - the event flags (numerically)

Archlinux:インクロン

Incronを使用して重要なファイルとフォルダを監視する方法

関連情報