¿Cómo puede un script de shell saber que se ejecuta en una zona de Solaris?
-
03-07-2019 - |
Pregunta
Un script de shell instala y configura algunos servicios y aplicaciones en una instancia de Solaris. Uno de estos servicios es NTP, pero NTP no puede ejecutarse en una zona no global (puede, pero xntpd falla cuando intenta ajustar el reloj; en cambio, la zona hereda la hora de la zona global).
¿Cómo puede un script de shell decir que se está ejecutando en una zona Solaris no global, para que pueda omitir el paso de configuración NTP en esos casos?
Solución
Utilice zonename (1)
. En la zona global (o en un servidor independiente sin ninguna zona), esto devolverá la cadena global
.
NAME
zonename - print name of current zone
SYNOPSIS
zonename
DESCRIPTION
The zonename utility prints the name of the current zone.
...
Otros consejos
También puedes probar zoneadm list -cv
, en la zona global verás una salida como:
# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
1 zone1 running /zones/zone1
mientras que en cualquier otra zona solo verías esa zona en particular, por ejemplo
# zoneadm list -cv
ID NAME STATUS PATH
1 zone1 running /zones/zone1
Bueno, si está ejecutando un script dentro de la zona y quiere asegurarse de que se está ejecutando en la zona, ejecute el comando a continuación
arp -a |grep SP
Puede ver su zona global en 1 línea en la salida del comando anterior. Puede ser útil aplicar el control en su script en base a esta salida.