Como um script de shell pode saber que ele é executado em uma zona solaris?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Um script de shell instala e configura alguns serviços e aplicativos em uma instância do Solaris. Um desses serviços é o NTP - mas o NTP não pode ser executado em uma zona não global (bem, ele pode, mas o XNTPD falha quando tenta ajustar o relógio; em vez disso, a zona herda o tempo da zona global).

Como um script de shell pode dizer que ele está realmente sendo executado em uma zona solaris não global, para que possa pular a etapa de configuração do NTP nesses casos?

Foi útil?

Solução

Usar zonename(1). Na zona global (ou em um servidor independente sem zonas), isso retornará a string global.

NAME
   zonename - print name of current zone

SYNOPSIS
   zonename

DESCRIPTION
   The zonename utility prints the name of the current zone.

...

Outras dicas

Você também pode tentar zoneadm list -cv, na zona global, você verá a saída como:

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

Considerando que em qualquer outra zona você só veria aquela zona específica, por exemplo,

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

Bem, se você estiver executando o script interno da zona e querendo garantir que ele esteja funcionando na zona, então execute abaixo o comando

arp -a |grep SP

Você pode ver sua zona global em 1 linha na saída do comando acima. Pode ser útil aplicar a verificação do seu script na base desta saída.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top