系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

服务器具有不同版本的 NIS 映射

由于 NIS 在服务器之间传播映射,有时您会在网络中的不同 NIS 服务器上发现同一映射的不同版本。如果差别持续的时间不长,则此版本差异正常并且可以接受。

引起映射差异的最常见原因是某些因素阻止了正常的映射传播。例如,NIS 服务器或 NIS 服务器之间的路由器关闭。当所有 NIS 服务器以及 NIS 服务器之间的路由器都在运行时,ypxfr 应该能成功运行。

如果服务器和路由器运行正常,请检查以下各项:

记录 ypxfr 输出

如果特定从属服务器在更新映射时出现问题,请登录该服务器并以交互方式运行 ypxfr。如果 ypxfr 运行失败,则会指出失败原因,然后您可以针对原因解决问题。如果 ypxfr 运行成功,但您怀疑过程中可能曾出现问题,请创建一个日志文件以便记录消息。要创建日志文件,请在从属服务器上输入以下内容。


ypslave# cd /var/yp 

ypslave# touch ypxfr.log

这将创建一个 ypxfr.log 文件,该文件会保存 ypxfr 的所有输出。

该输出与 ypxfr 在以交互方式运行时所显示的输出类似,但日志文件中的每行都带有时间标记。(您可能会发现时间标记排序不正常。这是正常情况-时间标记会指出 ypxfr 开始运行的时间。如果 ypxfr 的副本同时运行,但它们所用的时间不同,则它们实际上按照不同于调用顺序的顺序将摘要状态行写入日志文件。)日志中将显示任何形式的间歇性故障。


注意 –

解决问题后,请通过删除日志文件来关闭记录功能。如果忘记删除该文件,它会继续无限制地增大。


检查 crontab 文件和 ypxfr Shell 脚本

检查根 crontab 文件,并检查该文件调用的 ypxfr shell 脚本。这些文件中的排字错误会引起传播问题。无法引用 /var/spool/cron/crontabs/root 文件中的 shell 脚本以及无法引用任何 shell 脚本中的映射也会引起错误。

检查 ypservers 映射

此外,还要确保域的主服务器上的 ypservers 映射中列出该 NIS 从属服务器。否则,从属服务器仍可作为服务器正常运行,但 yppush 不会将映射更改传播至从属服务器。

解决方法

如果 NIS 从属服务器的问题不明显,可在调试时解决这一问题,方法是使用 rcpftp 从运行状况良好的 NIS 服务器中复制不一致映射的最新版本。下面显示了如何传送有问题的映射。


ypslave# rcp ypmaster:/var/yp/mydomain/map.\* /var/yp/mydomain

* 字符在命令行中进行了转义,这样它将在 ypmaster 中展开,而不是在 ypslave 本地展开。