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 ECHOto 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;