Wie kann ein Shell -Skript wissen, dass es in einer Solaris -Zone ausgeführt wird?

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

  •  03-07-2019
  •  | 
  •  

Frage

Ein Shell -Skript installiert und konfiguriert einige Dienste und Anwendungen in einer Solaris -Instanz. Eines dieser Dienste ist NTP - aber NTP kann nicht in einer nicht -globalen Zone ausgeführt werden (na ja es kann es können, aber XNTPD versetzt, wenn es versucht, die Uhr anzupassen; stattdessen erbt die Zone die Zeit aus der globalen Zone).

Wie kann ein Shell-Skript sagen, dass es tatsächlich in einer nicht-globalen Solaris-Zone ausgeführt wird, damit es in diesen Fällen den NTP-Konfigurationsschritt überspringen kann?

War es hilfreich?

Lösung

Verwenden zonename(1). In der globalen Zone (oder auf einem eigenständigen Server ohne Zonen) wird die Zeichenfolge zurückgegeben global.

NAME
   zonename - print name of current zone

SYNOPSIS
   zonename

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

...

Andere Tipps

Sie könnten es auch versuchen zoneadm list -cv, In der globalen Zone sehen Sie die Ausgabe wie:

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

Während Sie in einer anderen Zone nur diese bestimmte Zone sehen würden, z. B.

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

Nun, wenn Sie ein Skript in der Zone ausführen und sicherstellen möchten, dass es in der Zone ausgeführt wird, laufen Sie unter dem Befehl unter dem Befehl

arp -a |grep SP

Sie können Ihre globale Zone in 1 Zeile unter Ausgabe des obigen Befehls sehen. Es kann nützlich sein, Ihr Skript auf die Basis dieser Ausgabe einzubeziehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top