Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Apropos / Subsearch:
optional field

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:

       [IGNORE attribute...]*
       [CHECK] [attribute...]*

       subtree1 [pattern...]*
       [IGNORE attribute...]*
       [CHECK] [attribute...]*

       subtree2 [pattern...]*
       subtree3 [pattern...]*
       subtree4 [pattern...]*
       [IGNORE attribute...]*
       [CHECK] [attribute...]*

   Rule Blocks
       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-
                               sequent blocks.

       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-
       lier statements.

       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-
                lowing syntax:

                  o  Wildcards are permitted for both the subtree and  pattern
                     matching statements.

                  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/
                CHECK  all

       OR       Group  multiple  subtree  directives  together.  Such  subtree
                directives are logically ORed together.

                /home/nickiso/src !*.o !core
                /home/nickiso/docs *.sdw
                CHECK   all
                IGNORE  mtime lnmtime dirmtime

                The files included in the previous example are as follows:

                  o  Everything  under  /home/nickiso/src  except  for *.o and
                     core files

                  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-
                cation times.

   File Attributes
       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
                               from acltotext().

       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
                               the file.

       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.
       CHECK   all
       IGNORE  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/
       IGNORE  acl

       # For /usr, apply the global rules.

       # Note: Since /usr/tmp follows the /usr block, the /usr/tmp
       # subtree is subjected to the ``IGNORE all.''
       /home/nickiso *.o
       /home/nickiso core
       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)