2009-03-02 21 views
5

एक शेल स्क्रिप्ट एक Solaris उदाहरण में कुछ सेवाओं और अनुप्रयोगों को स्थापित और कॉन्फ़िगर करता है। इनमें से एक सेवा एनटीपी है - लेकिन एनटीपी गैर-वैश्विक क्षेत्र में नहीं चल सकता है (ठीक है, लेकिन यह xntpd विफल रहता है जब यह घड़ी को समायोजित करने का प्रयास करता है, इसके बजाय ज़ोन को वैश्विक क्षेत्र से समय प्राप्त होता है)।एक शेल स्क्रिप्ट कैसे जान सकती है कि यह सोलारिस जोन में चलती है?

एक शैल स्क्रिप्ट कैसे बता सकती है कि यह वास्तव में एक गैर-वैश्विक सौररी क्षेत्र में चल रहा है, ताकि वह उन मामलों में एनटीपी कॉन्फ़िगरेशन चरण को छोड़ सके?

उत्तर

5

zonename(1) का उपयोग करें। वैश्विक क्षेत्र में (या किसी भी क्षेत्र के बिना स्टैंडअलोन सर्वर पर), यह स्ट्रिंग global वापस कर देगा।

NAME 
    zonename - print name of current zone 

SYNOPSIS 
    zonename 

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

... 
1

तुम भी 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 
1

ठीक है, यदि आप क्षेत्र के अंदर स्क्रिप्ट चला रहे हैं और यकीन है कि यह क्षेत्र पर चल रहा है बनाने की चाह तो आदेश

arp -a |grep SP 

नीचे चलाने आप उपरोक्त के उत्पादन में 1 पंक्ति में अपनी वैश्विक क्षेत्र देख सकते हैं आदेश। इस आउटपुट के आधार पर आपकी स्क्रिप्ट में चेक लागू करना उपयोगी हो सकता है।

संबंधित मुद्दे