Как сценарий оболочки может узнать, что он работает в зоне Solaris? - PullRequest
5 голосов
/ 02 марта 2009

Сценарий оболочки устанавливает и настраивает некоторые службы и приложения в экземпляре Solaris. Одной из этих служб является NTP, но NTP не может работать в неглобальной зоне (вполне возможно, но xntpd дает сбой при попытке настроить часы; вместо этого зона наследует время от глобальной зоны).

Как сценарий оболочки может сказать, что он действительно работает в неглобальной зоне Solaris, чтобы в таких случаях он мог пропустить этап настройки NTP?

Ответы [ 3 ]

5 голосов
/ 02 марта 2009

Используйте zonename(1). В глобальной зоне (или на автономном сервере без каких-либо зон) возвращается строка global.

NAME
   zonename - print name of current zone

SYNOPSIS
   zonename

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

...
1 голос
/ 17 января 2013

Что ж, если вы запускаете скрипт внутри зоны и хотите убедиться, что он работает в зоне, выполните команду ниже

arp -a |grep SP

Вы можете увидеть свою глобальную зону в 1 строке на выходе вышеуказанной команды. Может быть полезно применить проверку в вашем скрипте на основе этого вывода.

1 голос
/ 02 марта 2009

Вы также можете попробовать zoneadm list -cv, в глобальной зоне вы увидите вывод вроде:

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

тогда как в любой другой зоне вы увидите только эту конкретную зону, например,

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