Come può uno script di shell sapere che funziona in una zona di Solaris?

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

  •  03-07-2019
  •  | 
  •  

Domanda

Uno script di shell installa e configura alcuni servizi e applicazioni in un'istanza di Solaris. Uno di questi servizi è NTP - ma NTP non può essere eseguito in una zona non globale (ma può farlo, ma xntpd fallisce quando tenta di regolare l'orologio; invece la zona eredita l'ora dalla zona globale).

In che modo uno script di shell può dire che è effettivamente in esecuzione in una zona Solaris non globale, in modo che possa saltare il passaggio di configurazione NTP in quei casi?

È stato utile?

Soluzione

Usa zonename (1) . Nella zona globale (o su un server autonomo senza zone), questo restituirà la stringa global .

NAME
   zonename - print name of current zone

SYNOPSIS
   zonename

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

...

Altri suggerimenti

Puoi anche provare zoneadm list -cv , nella zona globale vedrai un output come:

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

mentre in qualsiasi altra zona vedresti solo quella particolare zona, ad esempio

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

Bene, se stai eseguendo script all'interno della zona e vuoi assicurarti che sia in esecuzione sulla zona, esegui sotto il comando

arp -a |grep SP

Puoi vedere la tua zona globale in 1 riga all'output del comando sopra. Potrebbe essere utile applicare il controllo nel tuo script sulla base di questo output.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top