sysf.conf FileThe sysf.conf file is the file where all the sysf entries are described.
Each entry is characterised by
entry name (1st column) by which it is referred,config group (2nd column) which specifies where the
config file is stored, system file (3rd column) i.e. the full path name of the file or
directory that is maintained,config name (4th column) which is the file prefix for the
config file,sysf
entry.sysf.conf syntax
The sysf.conf file lists all the sysf entry files. Each entry fits
usually on a single line, but this is not a requirement as a semi colon is
used to mark the end of every definition. Line starting with a
# are considered as comments. The syntax is as follow:
ENTRY_NAME = CONFIG_GROUP SYSTEM_FILE CONFIG_NAME [FLAGS];
where
ENTRY_NAME : is the name used for the sysf entry. This will
usually be the name of the system file but does not have to be. If
there are two system files having the same name (but of course located in
different directories) one will have to use two different ENTRY_NAME.
Some files names, like .login are not ideal either so one would use an
entry name like root_cshrc (see the root config group
entry in the example below). Finally it is a good practise to add the suffix
_D, _DL to names that correspond respectively to a directory or a
directory list. The ENTRY_NAME determines also be the name of the
auxiliary command in the directory BIN for the entries that have one.
CONFIG_GROUP : this is the name of the directory where the
config file is stored. Each sysf entry belongs to one
config group. The config files for the entry are stored in the
sub-directory of the config directory named after the config group.
The configuration files are thus of the type
/CONFIG_DIR/CONFIG_GROUP/CONFIG_NAME.SUFFIX.
SYSTEM_FILE : the full path name of the system file. If the
file does not exist as such (like the crontab file for example), this is the
path name used for the system file created temporarily by the auxiliary
commands.
Each occurrence of the
string $H in the path-name is substituted by the host-name.
CONFIG_NAME : the name prefix for the config files.
This is usually identical to the ENTRY_NAME. The actual config files
will be of the type
/CONFIG_DIR/CONFIG_GROUP/CONFIG_FILE.HOSTNAME/CONFIG_DIR/CONFIG_GROUP/CONFIG_FILE.HOST_GROUP/CONFIG_DIR/CONFIG_GROUP/CONFIG_FILE.DEFAULT/CONFIG_DIR/CONFIG_GROUP/CONFIG_FILE.SHARED.config file match those of the corresponding system file.
The CONFIG_NAME and ENTRY_NAME have separate definitions so that one
can have two entries sharing the same config file. One needs this when
the same file must be copied in two different places or when two sets or
auxiliary commands are required.
FLAGS : the list of flags for the system file.
Uppercase flags are
used to describe the operations performed by the auxiliary command while
lower case flags describe various properties of the sysf entry.
C : create the system file. This is typically for a file like
the standard Unix crontab file which does not exist as such. The
crontab auxiliary command has to be executed before the sysf command is
executed (all command but install,
first_install and OS_install ) to
create a dummy system file, or after the sysf command (install,
first_install and OS_install) to update the crontab entries.
I : executes two different commands before and after the
system file is updated (install, first_install and
OS_install only).
This is typically used to for the NIS master files on the NIS master server
or to restart a daemon like lpd after the printcap file has been
modified.
U : executes a script file when the sysf -uninstall
command is executed.
W : creates both the system file and config file.
This sets the C flag automatically and the auxiliary command creates both
the system file and config file. This is used to create info files
(cfr diskinfo below.) When the config files does not exists, it is
automatically created with the host-name as the suffix.
s : the sysf entry is a shared file. This means that it is on a
shared partition common to all hosts and it is thus ignored by the
check_host, diff_host and OS_install commands.
h : the system file is specific to a given host.
This only affects
two sysf commands. The check-host command ignores these entries and
the OS_install executes the command new instead of install.
l : the system file is a symbolic link. The first line of the
config file is the symbolic link and the other lines are ignored.
The modes
and ownership of the files are ignored as they are not maintained by sysf for
symbolic links.
d : the system file is a directory. The config file
is an ordinary
file of which only the ownership and the modes are used to match those of the
system directory. The content of the file is ignored.
r : do not create a .DIST file when executing the
first-install command (typically used for the rc's symbolic links
or for the cron script files).
g : the system file is a directory listing. See the dedicated
chapter on directory listing for a more detailed description.It is possible to include a file within the sysf.conf file by adding the
line
INCLUDE INCLUDE_FILE;where
INCLUDE_FILE is the name of the file to include using a path
relative to the config directory. The included file must follow the
same syntax as the sysf.conf file and nested includes are allowed.
When one of the flags C, I, U is specified in the
sysf.conf file, sysf executes the command
/CONFIG_DIR/BIN/ENTRY_NAME ACTION COM SYSTEM_FILE CONFIG_FILE ECHO
to perform various operations. COM is the name of the sysf command.
The ACTION is dictated by the sysf command and the flags are set
from the sysf entry. They are described in the section on auxiliary
commands.
## we put the RC files in a separate configuration file. INCLUDE sysf.conf_RC; ######## GROUP etc ############# ###################################### etc_DL = etc /etc etc_DL gh; etc_D = etc /etc etc_D d; aspell.conf = etc /usr/etc/aspell.conf aspell.conf; clock = etc /etc/sysconfig/clock clock; i18n = etc /etc/sysconfig/i18n i18n; identd.conf = etc /etc/identd.conf identd.conf; inittab = etc /etc/inittab inittab; ld.so.conf = etc /etc/ld.so.conf ld.so.conf; lilo.conf = etc /etc/lilo.conf lilo.conf h; logrotate.conf = etc /etc/logrotate.conf logrotate.conf; man.config = etc /etc/man.config man.config; nsswitch.conf= etc /etc/nsswitch.conf nsswitch.conf; ntp.conf = etc /etc/ntp.conf ntp.conf; resolv.conf = etc /etc/resolv.conf resolv.conf; services = etc /etc/services services; shells = etc /etc/shells shells; sysf.cf = etc /etc/sysf.cf sysf.cf; syslog.conf = etc /etc/syslog.conf syslog.conf; ######################### ROOT ###################################### root_cshrc = root /root/.cshrc root_cshrc; root_rhosts = root /root/.rhosts root_rhosts; ######## GROUP net ############# ###################################### defaultdomain= net /etc/defaultdomain defaultdomain; ifcfg-eth0 = net /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0 h; network = net /etc/sysconfig/network network h; yp.conf = net /etc/yp.conf yp.conf; ######## GROUP nis ############# ###################################### hosts = nis /etc/hosts hosts h; passwd = nis /etc/passwd passwd h; ######## GROUP cron ############ ###################################### tetex.cron = cron /etc/cron.daily/tetex.cron tetex.cron r; crontab = cron /tmp/crontab.temp crontab C; tripwire-check = cron /etc/cron.daily/tripwire-check tripwire-check r; ######## GROUP printing ############################################### printcap = printing /etc/printcap printcap I; printcap.local = printing /etc/printcap.local printcap.local I; lpd.conf = printing /etc/lpd.conf lpd.conf I; lpd.perms = printing /etc/lpd.perms lpd.perms I;