とにかく、Linux(どんなディストリビューションでもバージョンに関係なく)には、読み書きフックを持つ動的ファイルシステムはありますか?たとえば、動的ファイルシステムを/dynamicにマウントし、存在しない場所に読み書きを試みるたびにbashスクリプトまたはプログラムを実行したいとします。 bashスクリプトを作成した場合と同様に、tail /dynamic/folder1/file1.log
読み取り操作の前に実行され、パスをパラメータとして使用できます。同様のプロジェクトがありますか?
答え1
あなたが探しているヒューズ。
FUSE では、フル機能のファイルシステムをユーザー空間プログラムに実装できます。機能は次のとおりです。
- シンプルライブラリAPI
- インストールが簡単(パッチやカーネルの再コンパイルは不要)
- 安全な実装
- ユーザースペース - カーネルインターフェースは非常に効率的です。
- 権限のないユーザーも利用可能
- Linuxカーネル2.4.X、2.6.X、3.Xで動作します。
- 時間が経っても非常に安定していることが証明されています。
公正に言えば、FUSEモジュールを見たことはありません。生のプログラム/スクリプトなので、まだやるべきことがあります。一部コーディング。
答え2
また、見たいと思うかもしれませんinotify。ファイルシステムの変更を受け取るAPIを提供します。たとえば、特定のディレクトリに新しいファイルが作成されるたびに通知を受け取るために使用できますIN_CREATE
(ほとんどのプログラミング言語またはスクリプト言語にはinotify APIがあるので、最も使い慣れたAPIを自由に選択してください)。
ただし、存在しないファイルの読み込み試行の通知を受け取ることは不可能だと思いますが、他のプログラムが読み込み前にファイルを生成するオプションを使用する場合は、ユースケースに従って作業できます。このまわりで。 inotifyがあなたに適した選択肢ではない場合は、Ignacioの提案に従ってFUSEを使用します。しかし、これはあなたが望むことを達成するために多くの追加タスクを追加することができます。