ypxfr
copies an NIS database from one NIS server to the local host by
using the NIS service.
ypxfr
is generally invoked by
ypinit
or by
ypserv,
when
ypserv
receives a map transfer request from
yppush.
It creates a temporary map in the directory
/var/yp/domain
(this directory must already exist;
domain
is the default domainname for the local host), fills it by getting
the map's entries and fetches the map parameters (master and order number).
If the transfer was successful, the old version of the map will be
deleted and the temporary copy will be moved into its place.
Then,
ypxfr
will attempt to send a "clear current map" request to the local
ypserv.
If run interactively,
ypxfr
writes its output to stderr.
However, if it is invoked without a controlling terminal, it will
log the output to syslog.
ypxfr
is used primarily in environments where several NIS servers are in use.
For all maps, you have a NIS master server, which maintains a canonical
copy of the NIS map, and all the other servers, the NIS slaves, copy
the new version of the map from the master whenever a update was made.
Normally, you have one NIS master for all maps.
In order to maintain consistency across all NIS servers,
ypxfr
can be run periodically in a
cron
job. Maps which change infrequently need only be updated once a day
(preferably late at night when system usage is lowest), where those
with frequent changes (such as
passwd.byname
and
passwd.byuid )
should be updated perhaps once every hour.
Examples are in
/usr/lib/yp: ypxfr_1perday, ypxfr_2perday,
and
ypxfr_1perhour.
They can serve as reasonable first cuts.
Normally all updates should be propagated by
yppush
when
/var/yp/Makefile
is run on the NIS master server, however it is a good practice
on large networks where possible outages could cause NIS slaves to
fall out of sync with the master.
OPTIONS
The following options are supported:
-f
Force a map transfer. Normally,
ypxfr
will not transfer a map if it determines that the NIS master's copy
is not newer than the existing copy already on the local host. This
flag forces a transfer regardless of which server's version is more
recent.
-c
Do not send a "clear current map" request to the
ypserv
process running on the local host. This flag is normally used when
invoking
ypxfr
by
ypinit
or if
ypserv
is not running locally at the time you are running
ypxfr.
Otherwise,
ypxfr
will complain that it cannot talk to the local
ypserv,
and the transfer will fail.
-d domain
Specify a domain other than the default NIS domain.
-h source host
Get the map from
host,
regardless of what the map says the master is. If
host
is not specified,
ypxfr
asks the
NIS
service for the name of the master, and tries to get the
map from there. This option is used to insure that ypxfr only copies
maps from the NIS master server.
-s source domain
Specify a source domain from which to transfer a map that should be the same
across domains.
-C taskid progam-number ipaddr port
This option is
only
for use by
ypserv .
When
ypserv
invokes
ypxfr,
it specifies that
ypxfr
should call back a
yppush
process at the host with
IP
address
ipaddr,
registered as program number
progam-number,
listening on port
port,
and waiting for a response to transaction
taskid.
-p yp_path
Change the directory for the maps to
yp_path/[domainname]/, the default
is /var/yp/[domainname].