/usr/lib/yp/ypxfr [-f] [-c] [-d target domain] [-h source host] [-s source domain] [-C taskid program-number host port] [-p yp_path] mapname...
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.
The following options are supported:
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.
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 host 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 or name host, 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].
One or more names of the map to transfer.
ypserv(8), yppush(8), ypinit(8), cron(8), crontab(5)
Thorsten Kukuk <email@example.com>
rpc.ypxfrd(8), ypinit(8), yppush(8), ypserv(8), ypxfr_selinux(8).