2009-03-02 22 views
5

Skrypt powłoki instaluje i konfiguruje niektóre usługi i aplikacje w instancji Solaris. Jedną z tych usług jest NTP - ale NTP nie może działać w strefie innej niż globalna (no może, ale xntpd nie powiedzie się, gdy próbuje ustawić zegar, zamiast tego strefa dziedziczy czas ze strefy globalnej).Skąd wiadomo, że skrypt powłoki działa w strefie Solaris?

W jaki sposób skrypt powłoki może stwierdzić, że rzeczywiście działa w nieglamowej strefie Solaris, aby w takich przypadkach mógł pominąć krok konfiguracji NTP?

Odpowiedz

5

Użyj zonename(1). W strefie globalnej (lub na autonomicznym serwerze bez stref) zwróci ciąg znaków global.

NAME 
    zonename - print name of current zone 

SYNOPSIS 
    zonename 

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

... 
1

Można również spróbować zoneadm list -cv w strefie globalnej widać wyjście jak:

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

natomiast w każdym innym obszarze można zobaczyć tylko danej strefy, na przykład

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

Cóż, jeśli używasz skryptu wewnątrz strefy i chcąc upewnić się, że działa w strefie następnie uruchomić poniżej polecenia

arp -a |grep SP 

Można zobaczyć swoją strefę globalnej w 1 linii na wyjściu powyżej dowództwo. Przydatne może być zastosowanie sprawdzenia w skrypcie na podstawie tego wyniku.

Powiązane problemy