構文は何ですか?ロギングファイルシステム構成ファイル?
公式文書には、loggedfs
コマンドの指示と構成ファイルの例のみが含まれています。いいですね。 XMLです。しかし、可能なタグと属性の両方は何ですか、その意味は何ですか?
答え1
Config.cpp
構成分析を担当するファイルを見ました。設定例は、実際に利用可能なオプションをキャプチャするのにかなり効果的です。あまり多くはありません。
以下の「例の出力」を参照すると、次の行について話しています(例ページからランダムにインポートされます)。
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
ルートタグには、次の<loggedFS>
2つのオプション属性があります。
- ログがアクティブです。文字列です。 「true」は、実際にはログ情報を出力する必要があることを意味し、それ以外の場合はすべてのログ記録が無効になります。これがプログラムのすべてなので、デフォルトは「true」です。
- 印刷プロセス名文字列です。 「true」は、ログ出力にプロセス名が含まれることを意味し、他の値は含まれないことを意味します。デフォルトは「true」です。出力例では、
kded [kdeinit]
プロセス名は次のとおりです。
興味がある唯一の子ノードは<include>
およびです<exclude>
。例では、それらを<includes>
and<excludes>
ブロックの下にグループ化していますが、パーサーはこれらのノードを無視します (<include>
および他のノードも同様<exclude>
)。
もちろん、<include>
ルールは一致時にログ行を出力し、<exclude>
行は出力しないようにします。重複が発生した場合は<exclude>
上書きされます<include>
。通常、<include>
記録するイベントと一致する1つ以上のルールが必要ですが、ルールがゼロの<include>
場合、すべてのイベントが記録されます。<exclude>
一致する線があっても。
どちらも同じ属性を<include>
持ちます。<exclude>
- 拡大するアクセス/修正/すべてのファイルへの絶対パスと一致する正規表現です(非常に
extension
悪い名前ですが、一般的な使い方のようです)。たとえば、touch /mnt/loggedfs/some/file
正規表現のextension
(部分)一致が必要な場合/mnt/loggedfs/some/file
- UIDは整数またはを含む文字列です
*
。この規則は、ジョブを発生させたプロセスの所有者が指定されたユーザーID(自然にすべてのユーザーIDが一致することを意味します)を持つ場合にのみ、指定されたジョブと一致*
します。出力例では、1000
uidは - 行動ファイルシステムで実行される特定の種類の操作。出力例では、これはアクション
getattr
です。考えられるアクションは次のとおりです。- 使用する権利
- chmod
- ジョン
- プロパティのインポート
- 協会
- 目次
- MKFIFO
- ムノード
- 開いている
- 読み取り専用で開く
- オープンリテラシー
- 開く - 書き込み専用
- 読む
- ディレクトリを読む
- リンクを読む
- 名前を変更する
- 目次
- 統計ファイルシステム
- シンボリックリンク
- カット
- 解く
- アイテム
- Utimens
- 書く
- 名前変更正規表現です。 LoggedFSが実行した実際のファイルシステム操作の戻りコードが0の場合、正規表現は文字列と一致します
SUCCESS
。ゼロ以外の戻りコードは異なる場合がありますFAILURE
。これは可能な唯一の値なので、ハードコーディングするか、必要に応じて両方を使用する可能性がSUCCESS
高いですFAILURE
。.*
出力例ではSUCCESS
次のようになります。retname
属性とは異なり、<loggedFS>
これらの属性にはデフォルト値はありません。また、パーサーは不明な属性とエラーを認識しますが、欠落している属性は検出しないため、属性を忘れた場合は初期化されていないメモリが使用されます。