bart_rules(4) File Formats bart_rules(4)
bart_rules - bart rules file
The bart_rules file is a text file that is used by the bart(1M) com-
mand. The rules file determines which files to validate and which file
attributes of those files to ignore.
Some lines are ignored by the manifest comparison tool. Ignored lines
include blank lines, lines that consist only of white space, and com-
ments that begin with #.
The rules file supports three directives: CHECK, IGNORE, and a subtree
directive, which is an absolute path name and optional pattern matching
modifiers. Each CHECK, IGNORE, and subtree directive must be on a sepa-
rate line. Bart supports continuation of long lines using a backslash
(\). The rules file uses the directives to create logical blocks.
The syntax for the rules file is as follows:
Rule blocks are composed of statements that are created by using direc-
tives and arguments.
There are three types of blocks:
Global Block The first block in the file. The block is con-
sidered ``global'' if it specifies CHECK and
IGNORE statements, but no previous subtree
statement. A global block pertains to all sub-
Local block A block that specifies CHECK and IGNORE state-
ments as well as a subtree directive. The rules
in this block pertain to files and directories
found in the specified subtree.
Heir block A block that contains a null CHECK statement,
no arguments. This block inherits the global
CHECK statements and IGNORE statements.
The order in which CHECK and IGNORE statements appear in blocks is
important. The bart command processes CHECK and IGNORE statements in
the order in which they are read, with later statements overriding ear-
Subtree specifications must appear one per line. Each specification
must begin with an absolute path name. Optionally, each specification
can be followed by pattern-matching arguments.
When a file system being tracked belongs to more than one subtree
directive, bart performs the following resolution steps:
o Applies the CHECK and IGNORE statements set in the global block.
Note that all CHECK and IGNORE statements are processed in order.
o Finds the last subtree directive that matches the file.
o Processes the CHECK and IGNORE statements that belong to the last
matching subtree directive. These statements are processed in the
order in which they are read, overriding global settings.
Pattern Matching Statements
There are two types of pattern matching statements
AND For a given subtree directive, all pattern matching statements
are logically ANDed with the subtree. Patterns have the fol-
o Wildcards are permitted for both the subtree and pattern
o The exclamation point (!) character represents logical
o A pattern that terminates with a slash is a subtree. The
absence of a slash indicates that the pattern is not a
directory. The subtree itself does not require an end
For example, the following subtree example includes the con-
tents of /home/nickiso/src except for object files, core
files, and all of the SCCS subtrees. Note that directory names
that terminate with .o and directories named core are not
excluded because the patterns specified do not terminate with
/home/nickiso/src !*.o !core !SCCS/
OR Group multiple subtree directives together. Such subtree
directives are logically ORed together.
/home/nickiso/src !*.o !core
IGNORE mtime lnmtime dirmtime
The files included in the previous example are as follows:
o Everything under /home/nickiso/src except for *.o and
o Everything under /home/nickiso/Mail
o All files under /home/nickiso/docs that end in *.sdw
For these files, all attributes are checked except for modifi-
The bart command uses CHECK and IGNORE statements to define which
attributes to track or ignore. Each attribute has an associated key-
The attribute keywords are as follows:
acl ACL attributes for the file. For a file with
ACL attributes, this field contains the output
all All attributes.
contents Checksum value of the file. This attribute is
only specified for regular files. If you turn
off context checking or if checksums cannot be
computed, the value of this field is -.
dest Destination of a symbolic link.
devnode Value of the device node. This attribute is for
character device files and block device files
dirmtime Modification time in seconds since 00:00:00
UTC, January 1, 1970 for directories.
gid Numerical group ID of the owner of this entry.
lnmtime Creation time for links.
mode Octal number that represents the permissions of
mtime Modification time in seconds since 00:00:00
UTC, January 1, 1970 for files.
size File size in bytes.
type Type of file.
uid Numerical user ID of the owner of this entry.
Example 1: Sample Rules File
The following is a sample rules file:
# Global rules, track everything except dirmtime.
# The files in /data* are expected to change, so don't bother
# tracking the attributes expected to change.
# Furthermore, by specifying ``IGNORE contents,'' you save
# time and resources.
IGNORE contents mtime size
/home/nickiso f* bar/
# For /usr, apply the global rules.
# Note: Since /usr/tmp follows the /usr block, the /usr/tmp
# subtree is subjected to the ``IGNORE all.''
The following files are cataloged based on the sample rules file:
o All attributes, except for dirmtime, mtime, size, and contents,
are tracked for files under the /data* subtrees.
o Files under the /usr subtree, except for /usr/tmp, are cataloged
by using the global rules.
o If the /home/nickiso/foo.c file exists, its attributes, except for
acl and dirmtime, are cataloged.
o All .o and core files under /home/nickiso, as well as the
/home/nickiso/proto and /usr/tmp subtrees, are ignored.
o If the /home/nickiso/bar/foo.o file exists, it is ignored because
it is subject to the last block.
bart(1M), bart_manifest(4), attributes(5)
SunOS 5.10 9 Sep 2003 bart_rules(4)