كيف يمكن للنص shell أن يعرف أنه يعمل في منطقة سولاريس؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

يقوم البرنامج النصي Shell بتثبيت وتكوين بعض الخدمات والتطبيقات في مثيل Solaris. إحدى هذه الخدمات هي NTP - ولكن لا يمكن أن يعمل NTP في منطقة غير عازمة (حسناً ، يمكن ذلك ، لكن XNTPD فشل عندما تحاول ضبط الساعة ؛ وبدلاً من ذلك ترث المنطقة الوقت من المنطقة العالمية).

كيف يمكن لبرنامج 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

يمكنك رؤية منطقتك العالمية في سطر واحد عند إخراج الأمر أعلاه. قد يكون من المفيد تطبيق فحص البرنامج النصي الخاص بك على قاعدة هذا الإخراج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top