Comment un script shell peut-il savoir qu'il s'exécute dans une zone Solaris?

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

  •  03-07-2019
  •  | 
  •  

Question

Un script shell installe et configure certains services et applications dans une instance Solaris. L'un de ces services est NTP - mais NTP ne peut pas s'exécuter dans une zone non globale (bien sûr, mais xntpd échoue lorsqu'il tente d'ajuster l'horloge. Au lieu de cela, la zone hérite de l'heure de la zone globale).

Comment un script shell peut-il savoir qu'il est effectivement exécuté dans une zone Solaris non globale, afin de pouvoir ignorer l'étape de configuration NTP dans ces cas?

Était-ce utile?

La solution

Utilisez nom_zone (1) . Dans la zone globale (ou sur un serveur autonome sans aucune zone), la chaîne global sera renvoyée.

NAME
   zonename - print name of current zone

SYNOPSIS
   zonename

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

...

Autres conseils

Vous pouvez également essayer zoneadm list -cv . Dans la zone globale, le résultat s'affiche:

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

alors que dans toute autre zone, vous ne verrez que cette zone particulière, par exemple

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

Eh bien, si vous exécutez un script dans la zone et souhaitez vous assurer qu'il s'exécute dans une zone, exécutez-le sous la commande

.
arp -a |grep SP

Vous pouvez voir votre zone globale sur 1 ligne à la sortie de la commande ci-dessus. Il peut être utile d’appliquer check dans votre script sur la base de cette sortie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top