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 fonctionner dans une zone non globale (eh bien, mais xntpd échoue quand il essaie d'ajuster l'horloge, mais la zone hérite de l'heure de la zone globale). Comment un script shell peut-il indiquer qu'il s'exécute effectivement dans une zone Solaris non globale, de sorte qu'il peut ignorer l'étape de configuration NTP dans ces cas?Comment un script shell peut-il savoir qu'il s'exécute dans une zone Solaris?
5
A
Répondre
5
Utilisez zonename(1)
. Dans la zone globale (ou sur un serveur autonome sans zone), la chaîne global
est renvoyée.
NAME
zonename - print name of current zone
SYNOPSIS
zonename
DESCRIPTION
The zonename utility prints the name of the current zone.
...
1
Vous pouvez également essayer zoneadm list -cv
, dans la zone globale, vous verrez comme sortie:
# zoneadm list -cv
ID NAME STATUS PATH
0 global running /
1 zone1 running /zones/zone1
alors que dans toute autre zone que vous ne verriez cette zone particulière, par exemple
# zoneadm list -cv
ID NAME STATUS PATH
1 zone1 running /zones/zone1
1
Eh bien, si vous exécutiez le script dans la zone et de vouloir pour vous assurer qu'il est en cours d'exécution sur la zone puis exécutez ci-dessous commande
arp -a |grep SP
Vous pouvez voir votre zone globale en 1 ligne en sortie ci-dessus commander. Il peut être utile d'appliquer check dans votre script sur la base de cette sortie.