2009-03-02 10 views
5

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 hacerlo, pero xntpd falla cuando intenta ajustar el reloj, sino que la zona hereda el tiempo de la zona global).¿Cómo puede saber un script de shell que se ejecuta en una zona de Solaris?

¿Cómo puede un script de shell indicar que se está ejecutando realmente en una zona Solaris no global, por lo que puede omitir el paso de configuración de NTP en esos casos?

Respuesta

5

Usar zonename(1). En la zona global (o en un servidor independiente sin zonas), 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. 

... 
1

También puede probar zoneadm list -cv, en la zona global, verá una salida como:

# zoneadm list -cv 
ID NAME    STATUS   PATH 
0 global   running  /
1 zone1   running  /zones/zone1 

mientras que en cualquier otra zona sólo se vería esa zona en particular, por ejemplo,

# zoneadm list -cv 
ID NAME    STATUS   PATH 
1 zone1   running  /zones/zone1 
1

Bueno, si está ejecutando la escritura dentro de la zona y el deseo de asegurarse de que se está ejecutando en la zona a continuación, ejecuta a continuación comando

arp -a |grep SP 

Puede ver su zona global en 1 línea a la salida del anterior mando. Puede ser útil aplicar control en su script en base a esta salida.

Cuestiones relacionadas