¿Cómo puede un script de shell saber que se ejecuta en una zona de Solaris?

StackOverflow https://stackoverflow.com/questions/603212

  •  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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top