LoggedFS構成ファイルの構文は何ですか?
公式ドキュメントには、loggedfs
の使用方法のみが記載されていました。 コマンドと構成ファイルの例。わかりました。XMLですが、考えられるすべてのタグと属性は何ですか。また、それらはどういう意味ですか?
承認された回答:
Config.cpp
を調べました 、構成の解析を担当するファイル。設定例は、実際には利用可能なオプションをキャプチャするのに非常に優れています。それほど多くはありません
以下の「出力例」を参照するときは、この行について話します(サンプルページからランダムに抽出されます):
17:29:35 (src/loggedfs.cpp:136) getattr /var/ {SUCCESS} [ pid = 8700 kded [kdeinit] uid = 1000 ]
ルートタグは<loggedFS>
です。 。 2つのオプションの属性があります:
- logEnabled 文字列です—「true」は実際にログ情報を出力する必要があることを意味します。それ以外の場合は、すべてのロギングが無効になります。デフォルトは「true」です。これは、プログラムの要点の一種だからです
- printProcessName は文字列です—「true」はログ出力にプロセス名が含まれることを意味し、それ以外の場合は含まれないことを意味します。デフォルトは「true」です。出力例では、
kded [kdeinit]
プロセス名です
気になる子ノードは<include>
だけです。 および<exclude>
。この例では、それらを<includes>
の下にグループ化します。 および<excludes>
ブロックしますが、パーサーはそれらを無視します(<include>
以外の他のノードも同様です)。 および<exclude>
。
当然、<include>
ルールにより、一致する場合はログ行が出力されますが、<exclude>
行はそれをしません。重複する場合は、<exclude>
<include>
をオーバーライドします 。通常、少なくとも1つの<include>
が必要です ログに記録されるイベントに一致するルールですが、例外は0 <include>
がある場合です。 ルール—一致する<exclude>
がある場合でも、すべてのイベントがログに記録されます 行 。
両方の<include>
および<exclude>
同じ属性を取る:
- 拡張 アクセス/変更/その他(
extension
)されたファイルの絶対パスと照合される正規表現です。 かなり貧弱な名前ですが、それが一般的な使用法だと思います)。たとえば、touch /mnt/loggedfs/some/file
、extension
の正規表現/mnt/loggedfs/some/file
と(部分的に)一致する必要があります - uid 整数または
*
のいずれかを含む文字列です 。ルールは、操作を引き起こしたプロセスの所有者が指定されたユーザーID(*
)を持っている場合にのみ、指定された操作に一致します。 当然、すべてのユーザーIDが一致することを意味します)。出力例では、1000
uidです - アクション ファイルシステムで実行される特定のタイプの操作です。出力例では、
getattr
アクションです。可能なアクションは次のとおりです。- アクセス
- chmod
- chown
- getattr
- リンク
- mkdir
- mkfifo
- mknod
- 開く
- オープン-読み取り専用
- open-readwrite
- open-writeonly
- 読む
- readdir
- 読み取りリンク
- 名前の変更
- rmdir
- statfs
- シンボリックリンク
- 切り捨て
- リンクを解除
- utime
- utimens
- 書き込み
- 名前 は正規表現です。 LoggedFSによって実行される実際のファイルシステム操作の戻りコードが0の場合、正規表現は文字列
SUCCESS
と照合されます。 。ゼロ以外の戻りコードにより、FAILURE
と照合されます。 。可能な値はこれらだけなので、SUCCESS
をハードコードする可能性があります。 、FAILURE
、または.*
を使用します 両方が必要な場合。出力例では、SUCCESS
retname
です
<loggedFS>
とは異なります 属性、これらにはデフォルトがありません。また、パーサーは不明な属性を認識してエラーを出しますが、欠落している属性は検出しないため、属性を忘れた場合は、初期化されていないメモリを使用します。