Trabajo con servicios de nombres y de directorio en Oracle® Solaris 11.2: DNS y NIS

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Mantenimiento de mapas actualizados

En las siguientes secciones se describen procedimientos adicionales después de haber completado la actualización de los mapas que se proporcionan con el conjunto predeterminado.

Propagación de un mapa NIS

Una vez que un mapa se cambia, Makefile utiliza yppush para propagar un nuevo mapa a los servidores esclavos (a menos que NOPUSH esté establecido en Makefile). Esto se realiza al informar al daemon ypserv y enviar un mapa de solicitud de transferencia. Luego el daemon ypserv en el esclavo inicia un proceso ypxfr, que, a su vez, se pone en contacto con el daemon ypxfrd en el servidor maestro. Se realizan algunas comprobaciones básicas (por ejemplo, ¿cambió realmente el mapa?), y, a continuación, el mapa se transfiere. ypxfr en el esclavo envía una respuesta al proceso yppush indicando si la transferencia se completó con éxito.

La propiedad config/local_only del servicio svc:/network/rpc/bind debe estar definida en false. De lo contrario, el maestro NIS no puede transferir la versión actualizada del mapa maestro NIS al servidor esclavo NIS mediante el comando yppush.


Notas -  El procedimiento anterior no funcionará para los nuevos mapas que aún no existen en los servidores esclavos. Deben enviarse nuevos mapas a los servidores esclavos ejecutando ypxfr los esclavos.

En ocasiones, los mapas no se pueden propagar, y se debe usar ypxfr manualmente para enviar información de nuevos mapas. Puede elegir utilizar ypxfr de dos maneras diferentes: periódicamente mediante el archivo root crontab o interactivamente en la línea de comandos. Estos métodos se discuten en las siguientes secciones.

Uso del comando cron para transferencias de mapas

Loa mapas tienen distintas frecuencias de cambio. Por ejemplo, es posible que algunos mapas no cambien durante meses en un tiempo, como sucede con protocols.byname entre los mapas predeterminados y auto_master entre los mapas no predeterminados. Sin embargo, passwd.byname puede cambiar varias veces al día. La programación de transferencia de mapas mediante el uso del comando crontab le permite definir tiempos de propagación específicos para mapas individuales.

Para ejecutar periódicamente ypxfr con una frecuencia adecuada para el mapa, el archivo raíz crontab de cada servidor esclavo debe contener las entradas de ypxfr correspondientes. ypxfr se pone en contacto con el servidor maestro y transfiere el mapa sólo si la copia del servidor maestro es más reciente que la copia local.


Notas -  Si su servidor maestro ejecuta rpc.yppasswdd con la opción predeterminada –m, cada vez que alguien cambia su contraseña yp, el daemon passwd ejecuta make, que vuelve a crear los mapas passwd.

Uso de secuencias de comandos de shell con cron e ypxfr

Como alternativa para crear entradas crontab separadas para cada mapa, puede ser preferible hacer que el comando raíz crontab ejecute una secuencia de comandos shell que actualice periódicamente todos los mapas. Las secuencias de muestra de comandos de shell de actualización de mapas están en el directorio /usr/lib/netsvc/yp. Los nombres de secuencia de comandos son ypxfr_1perday, ypxfr_1perhour e ypxfr_2perday. Puede modificar o sustituir estas secuencias de comandos de shell para que se ajusten a los requisitos de su sitio. En el ejemplo siguiente, se muestra la secuencia de comandos de shell ypxfr_1perday predeterminada.

Ejemplo 7-1  Secuencia de comandos de shell ypxfr_1perday
#! /bin/sh
#
# ypxfr_1perday.sh - Do daily yp map check/updates
PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH
export PATH
# set -xv
ypxfr group.byname
ypxfr group.bygid
ypxfr protocols.byname
ypxfr protocols.bynumber
ypxfr networks.byname
ypxfr networks.byaddr
ypxfr services.byname
ypxfr ypservers

Esta secuencia de comandos de shell actualiza los mapas una vez por día, si la raíz crontab se ejecuta a diario. También puede tener secuencias de comandos que actualizan mapas una vez por semana, una vez por mes, una vez por hora y así sucesivamente. Sin embargo, tenga en cuenta la reducción del rendimiento que implica la propagación frecuente de los mapas. Para obtener más información, consulte la página del comando man crontab(1).

Ejecute las mismas secuencias de comandos de shell como root en cada servidor esclavo configurado para el dominio NIS. Modifique el momento exacto de ejecución de un servidor a otro para evitar retrasar el servidor maestro.

Si desea transferir el mapa de un determinado servidor esclavo, utilice la opción –h machine de ypxfr dentro de la secuencia de comandos de shell. Ésta es la sintaxis de los comandos que se colocan en la secuencia de comandos.

# /usr/lib/netsvc/yp/ypxfr –h machine [ –c ] mapname

Donde equipo es el nombre del servidor con los mapas que desea transferir y mapname es el nombre del mapa solicitado. Si utiliza la opción –h sin especificar un equipo, ypxfr intenta obtener el mapa del servidor maestro. Si ypserv no es se está ejecutando localmente en el momento que se ejecuta ypxfr, debe utilizar el indicador –c, de modo que ypxfr no envíe una solicitud de mapa actual sin cifrar a ypserver local.

Puede utilizar la opción –s dominio para transferir mapas desde otro dominio a su dominio local. Estos mapas deben ser los mismos en todos los dominios. Por ejemplo, dos dominios pueden compartir los mismos mapas services.byname y services.byaddr. Si desea obtener más control, también puede utilizar rcp o rsync para transferir archivos entre dominios.

Invocación directa del comando ypxfr

El segundo método de invocación del comando ypxfr es ejecutarlo como un comando. Normalmente, esto se realiza en situaciones excepcionales, por ejemplo, cuando se configura un servidor NIS temporal para crear un entorno de prueba o cuando se intenta ajustar rápidamente un servidor NIS que ha estado fuera de servicio según los demás servidores.

Registro de la actividad de ypxfr

Los intentos de transferencia y los resultados de ypxfr se pueden capturar en un archivo de registro. Si existe un archivo llamado /var/yp/ypxfr.log, los resultados se agregan a éste. No se intenta limitar el tamaño del archivo de registro. Para evitar que crezca indefinidamente, vacíelo de vez en cuando escribiendo lo siguiente.

# cd /var/yp
# cp ypxfr.log ypxfr.log.old
# cat /dev/null > /var/yp/ypxfr.log

Puede hacer que crontab ejecute esos comandos una vez por semana. Para desactivar el registro, elimine el archivo de registro.