shell腳本在Solaris實例中安裝和配置一些服務和應用程序。其中一種服務是NTP - 但NTP不能在非全局區域中運行(當然,它可以,但是xntpd在嘗試調整時鐘時失敗;而是該區域從全局區域繼承時間)。shell腳本如何知道它在Solaris區域中運行?
shell腳本如何知道它確實在非全局Solaris區域中運行,以便在這種情況下可以跳過NTP配置步驟?
shell腳本在Solaris實例中安裝和配置一些服務和應用程序。其中一種服務是NTP - 但NTP不能在非全局區域中運行(當然,它可以,但是xntpd在嘗試調整時鐘時失敗;而是該區域從全局區域繼承時間)。shell腳本如何知道它在Solaris區域中運行?
shell腳本如何知道它確實在非全局Solaris區域中運行,以便在這種情況下可以跳過NTP配置步驟?
使用zonename(1)
。在全局區域(或在沒有任何區域的獨立服務器上),這將返回字符串global
。
NAME
zonename - print name of current zone
SYNOPSIS
zonename
DESCRIPTION
The zonename utility prints the name of the current zone.
...
您也可以嘗試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
好吧,如果你正在運行的腳本中區,並希望以確保它在區域中運行,然後運行以下命令
arp -a |grep SP
你可以在上面的輸出中看到您的全局區域在1號線命令。根據此輸出在腳本中應用檢查可能很有用。