rpc.ypxfrd -- NIS map transfer server
rpc.ypxfrd [-p path]
The rpc.ypxfrd utility is used to speed up the distribution of very large
NIS maps from NIS master to NIS slave servers. The normal method for
transfering maps involves several steps:
+o The master server calls yppush(8) to inform the slave servers
to start a transfer.
+o The slave servers invoke ypxfr(8), which reads the entire contents
of a map from the master server using the yp_all() function.
+o The ypxfr(8) program then creates a new map database file by
using the db(3) library hash method to store the data that it
receives from the server.
+o When all the data has been retrieved, ypxfr(8) moves the new
file into place and sends ypserv(8) on the local machine a
YPPROC_CLEAR to tell it to refresh its database handles.
This process can take several minutes when there are very large maps
involved. For example: a passwd database with several tens of thousands
of entries can consume several megabytes of disk space, and it can take
the db(3) library package a long time to sort and store all the records
in a hash database. Consider also that there are two sets of map files:
master.passwd.by{name,uid} and passwd.by{name,uid}.
The rpc.ypxfrd utility speeds up the transfer process by allowing NIS
slave servers to simply copy the master server's map files rather than
building their own from scratch. Simply put, rpc.ypxfrd implements an
RPC-based file transfer protocol. Transfering even a multi-megabyte file
in this fashion takes only a few seconds compared to the several minutes
it would take even a reasonably fast slave server to build a new map from
scratch.
The rpc.ypxfrd utility uses the same access restriction mechanism as
ypserv(8). This means that slave servers will only be permitted to
transfer files if the rules in the securenets(5) database permit it.
Furthermore, only slave servers using reserved ports will be allowed to
transfer the master.passwd maps.
The following option is available:
-p path
This option can be used to override the default path to the location
of the NIS map databases. The compiled-in default path is
/var/yp.
/var/yp/[domainname]/[maps] The NIS maps for a particular NIS
domain.
yp(8), yppush(8), ypserv(8), ypxfr(8)
The FreeBSD ypxfrd protocol is not compatible with that used by SunOS.
This is unfortunate but unavoidable: Sun's protocol is not freely available,
and even if it were it would probably not be useful since the SunOS
NIS v2 implementation uses the original ndbm package for its map databases
whereas the FreeBSD implementation uses Berkeley DB. These two
packages use vastly different file formats. Furthermore, ndbm is byteorder
sensitive and not very smart about it, meaning that am ndbm database
created on a big endian system can't be read on a little endian system.
Bill Paul <wpaul@ctr.columbia.edu>
FreeBSD 5.2.1 June 2, 1996 FreeBSD 5.2.1 [ Back ] |