特定の瞬間にファイルを生成するすべてのアプリケーションでファイル(特にログファイル)を追跡する必要があります。これらのファイルの名前は任意に指定できます(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
(ユーザーを許可するincrontab
)incrontab -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)