web-dev-qa-db-ja.com

Linuxでファイルシステムの変更を監視する最良の方法

ファイルシステムのアクティビティを監視するファイルシステム同期ユーティリティの構築を検討していますが、Linuxカーネルのファイルシステム監視機能の一部が廃止されているか、完全には機能していないようです。

私の研究で見つかったもの

dnotifyの最初の通知には、削除、変更、アクセス、添付、作成、移動の通知機能があり、ファイル記述子を決定できますが、inotifyとfanotifyによって古くなっています

inotifyは2番目に通知され、通知、アクセス、変更、属性、クローズ、移動、削除、作成などの機能がありますが、ファイル記述子またはプロセスは提供されず、fanotifyによって古くなります。

fanotifyは最新のもので、アクセス、変更、クローズを通知しますが、削除や属性は通知しませんが、ファイル記述子を提供します

すべてを同期するために、プロセス(fdなどから)や削除、変更、属性などを決定する方法が必要ですか?残念ながらdnotifyは最良のようですが最も古くなっています

22
ReDucTor

inotifyや友達の代わりにライブラリを使用する必要があります- FAM または Gamin のようなもの(同じAPIです)両方のための)。これにより、プログラムが他のUnixに移植可能になります。

8
cnicutar

inotifyでファイル記述子またはプロセスを提供する優れたlibがあります。独自のC APIとinotifywatch util(スクリプトに適しています)があり、すべてinotify-toolsパッケージに含まれています。

Fanotifyがinotifyよりも時代遅れになることには、私は強く反対します。

FAMとgaminは非常に優れたサーバー/クライアントオプションです。どちらも、古いdnotifyおよびポーリングよりも最初のオプションとしてinotifyを使用しています。私はガーミンが好きです。

3

incronは、このような操作に役立つツールです。監視するディレクトリまたはファイルの構成ファイルを作成できます。

http://inotify.aiken.cz/?section=incron&page=about&lang=en

ubuntuで

Sudo apt-get install incron

/etc/incron.d/mynotification.conf

# notification for user creation
/home IN_ALL_EVENTS /opt/notify_user_created.sh $#
1
Fırat KÜÇÜK