この節では次の参考情報を示します。
目録ファイルの各エントリは、ファイルタイプに応じて単一の行に示されます。各エントリは、ファイルの名前である fname で始まります。ファイル名に使用された特殊文字が引き起こす解析上の問題を防ぐため、ファイル名はコード化されます。詳細は、「BART 規則ファイルの書式」を参照してください。
後続のフィールドは、次のファイル属性を表します。
ファイルの種類であり、次のような値となります。
B: ブロックデバイスノード
C: キャラクタデバイスノード
D: ディレクトリ
F: ファイル
L: シンボリックリンク
P: パイプ
S: ソケット
ファイルサイズ (バイト)。
ファイルのアクセス権を示す 8 進の数値。
ファイルの ACL 属性。ACL 属性を持つファイルの場合、acltotext() の出力が入ります。
このエントリの所有者の、数値で示したユーザー ID。
このエントリの所有者の、数値で示したグループ ID。
ディレクトリに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
リンクに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
ファイルに最後に変化が起きた時点。1970 年 1 月 1 日の 00:00:00 UTC から数えた秒数で示されます。
ファイルのチェックサム値。この属性が指定されるのは通常ファイルのみです。コンテキストのチェックを無効にした場合と、チェックサムが計算できない場合は、このフィールドの値は – になります。
シンボリックリンクのリンク先。
デバイスノードの値。この属性が使用されるのは、キャラクタデバイスファイルとブロックデバイスファイルのみです。
BART 目録についての詳細は、bart_manifest(4) のマニュアルページを参照してください。
bart コマンドの入力ファイルはテキストファイルです。これらのファイルは、目録に含められるファイルと、レポートに含められるファイル属性を指定する行から構成されます。この同じ入力ファイルは、両方の BART 機能で使用できます。#、空の行、空白を含む行は、ツールが無視します。
入力ファイルには、次に示す 3 種類の指示語が指定されます。
オプションのパターンマッチング修飾子を持つ subtree 指示語
CHECK 指示語
IGNORE 指示語
<Global CHECK/IGNORE Directives> <subtree1> [pattern1..] <IGNORE/CHECK Directives for subtree1> <subtree2> [pattern2..] <subtree3> [pattern3..] <subtree4> [pattern4..] <IGNORE/CHECK Directives for subtree2, subtree3, subtree4> |
すべての指示語は指定された順に読み取られますが、あとから指定された指示語が先に指定された指示語に優先して読み取られる可能性があります。
行ごとに subtree 指示語が 1 つ存在します。この指示語は、絶対パス名で始まり、そのあとに 0 個以上のパターンマッチング文が続く必要があります。
bart コマンドは、CHECK 文と IGNORE 文を使用して追跡または無視の対象となる属性を定義します。各属性にはキーワードが関連付けられます。
acl
all
contents
dest
devnode
dirmtime
gid
lnmtime
モード
mtime
size
type
uid
キーワード all は、すべてのファイル属性を意味します。
BART が規則ファイルに使用する記述言語は、標準に準拠していないファイル名を表現する標準の UNIX 引用構文です。埋め込まれたタブ、スペース、改行、特殊文字は、ツールがファイル名を読み取ることができるようにそれらの 8 進形式にコード化されます。この変動的な引用構文では、埋め込みのキャリッジリターンを含むファイル名などがコマンドパイプラインで正しく処理されません。規則記述言語を使用することで、シェル構文だけでは表現が難しい効率の悪い複雑なファイル名フィルタリング基準を表現できます。
BART 規則ファイルや、BART で使用される引用構文についての詳細は、bart_rules(4) のマニュアルページを参照してください。
デフォルトモードでは、次の例に示すように bart compare コマンドは、ディレクトリ変更のタイムスタンプ (dirmtime) を除きシステムにインストールされているすべてのファイルをチェックします。
CHECK all IGNORE dirmtime |
規則ファイルを指定すると、汎用指示語である CHECK all と IGNORE dirmtime がこの順で規則ファイルの先頭に自動的に付けられます。
次の終了値が返されます。
成功
ファイル処理時の致命的でないエラー (アクセス権問題など)
致命的なエラー (無効なコマンド行オプションなど)
レポーティングメカニズムとして、 詳細出力と、プログラムを考慮した出力の 2 種類を利用できます。
詳細出力はデフォルトの出力であり、地域対応化され、複数の行にわたって表示されます。詳細出力は国際化されたもので、ユーザーが内容を読み取ることができます。bart compare コマンドは、2 つのシステム目録を比較する時に、ファイル間の相違を示すリストを生成します。
次に例を示します。
filename attribute control:xxxx test:yyyy |
制御目録とテスト目録で相違があるファイルの名前。
比較された目録間で相違があるファイル属性の名前。xxxx は制御目録の属性値で、yyyy はテスト目録の属性値です。同じファイルの複数の属性に相違が見つかった場合、別々の行にそれぞれの相違が示されます。
次に、bart compare コマンドのデフォルト出力の例を示します。この例では、/etc/passwd ファイルでの属性の相違がチェックされています。この出力から、size、mtime、および contents 属性に変化があったことがわかります。
/etc/passwd: size control:74 test:81 mtime control:3c165879 test:3c165979 contents control:daca28ae0de97afd7a6b91fde8d57afa test:84b2b32c4165887355317207b48a6ec7 |
-bart compare コマンドの実行時に p オプションを指定すると、プログラムを考慮した出力が生成されます。この出力は、プログラム化された操作に適したフォームで生成されます。「プログラムを考慮した出力」はほかのプログラムで簡単に解析が可能であり、ほかのツールに対する入力情報として使用されるように設計されています。
次に例を示します。
filename attribute control-val test-val [attribute control-val test-val]* |
デフォルト形式における filename 属性に同じ
各ファイルの制御目録とテスト目録間で異なるファイル属性の説明
bart コマンドでサポートされる属性の一覧は、「規則ファイルの属性」を参照してください。
BART の詳細は、bart(1M) のマニュアルページを参照してください。