कॉन्फ़िगरेशन फ़ाइलों को संग्रहीत करने के लिए पसंदीदा स्थान जो अक्सर बदलते रहते हैं


17

मेरे पास मेरे लिनक्स सर्वर पर कई एप्लिकेशन हैं जो कुछ कॉन्फ़िगरेशन फ़ाइलों पर निर्भर करते हैं। ये एप्लिकेशन संबंधित हैं लेकिन अलग-अलग हैं। इस समय इसकी कीमत क्या है, इसके लिए प्रत्येक एप्लिकेशन की अपनी निर्देशिका है /opt। कॉन्फ़िगरेशन फ़ाइलें प्रति सप्ताह एक बार बदल सकती हैं, लेकिन इससे अधिक नहीं। मैं हर रविवार को एफ़टीपी साइट से नवीनतम संस्करण को हथियाने के लिए क्रॉन जॉब स्थापित करने की योजना बना रहा हूं।

मुझे ठीक से समझ में नहीं आ रहा है कि इन कॉन्फ़िगरेशन फ़ाइलों को रखने के लिए सबसे अच्छी जगह कहाँ होगी, फिर भी। यहाँ कुछ संभावनाएं हैं:

  • /etc/<appsuitename>/ यह एक कॉन्फ़िगरेशन फ़ाइल है, कॉन्फ़िगरेशन में जाता है /etc
  • /var/<appsuitename>/ फ़ाइलें अक्सर यथोचित रूप से बदलती हैं, लेकिन प्रशासक (मुझे) द्वारा सीधे कभी नहीं, बस प्लेटफॉर्म प्रदाता द्वारा।
  • /opt/<appsuitename>/libया /opt/<appsuitename>/commonयह सोचने का एक विंडोज तरीका है, लेकिन यह इस मामले में समझ में आ सकता है
  • /usr/lib शायद नहीं, लेकिन पूर्णता के लिए शामिल।

या शायद कुछ और जो मैंने नहीं सोचा है?

संपादित करें: @ माइकलकॉर्जिंग के सवालों का जवाब देना:

  • केवल 3 विभाजन कर रहे हैं, /home, /, और /swap/optआसानी से नहीं है।
  • हां, अगर मैं किसी बस की चपेट में आता हूं तो दूसरे व्यक्ति को इस सर्वर का उपयोग करना होगा।
  • इन अनुप्रयोगों को आंतरिक रूप से विकसित किया जाता है, इसलिए मैं वही हूं जो यह तय करता है कि कॉन्फ़िगरेशन कहां जाना चाहिए। यदि यह "मेटा-टैग" नहीं होता तो मैं एक सर्वोत्तम-व्यवहार टैग लगा सकता था।
  • अंततः, जो भी मैं तय करता हूं वह वास्तव में कोई मायने नहीं रखेगा, मुझे पता है कि संगठनात्मक सिस्टम ओएस के आंतरिक कामकाज के लिए सिस्टम प्रशासक से अधिक हैं, लेकिन मैं मानक सम्मेलनों का पालन करना पसंद करता हूं क्योंकि वे एक कारण के लिए मौजूद हैं।

जवाबों:


20

फ़ाइलसिस्टम पदानुक्रम मानक के लिए आवश्यक है कि कुछ के तहत स्थापित विन्यास फाइल /opt/xyzमें जाना चाहिए /etc/opt/xyz, जहाँ xyzमेल खाना चाहिए। यही है, एक निर्देशिका के तहत / ऑप्ट में स्थापित एप्लिकेशन को होस्ट-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों की आवश्यकता होती है, जिसके तहत / etc / ऑप्ट में एक मिलान निर्देशिका होनी चाहिए, जिसमें वे कॉन्फ़िगरेशन फ़ाइलें चलती हैं।

के प्रयोजन / आदि (होस्ट-विशिष्ट सिस्टम विन्यास) बस के रूप में कहा गया है:

/etcपदानुक्रम विन्यास फाइल में शामिल है। "कॉन्फ़िगरेशन फ़ाइल" एक स्थानीय फ़ाइल है जिसका उपयोग किसी प्रोग्राम के संचालन को नियंत्रित करने के लिए किया जाता है; यह स्थिर होना चाहिए और एक निष्पादन योग्य बाइनरी नहीं हो सकता है।

बेशक, कोई कॉन्फ़िगरेशन पूरी तरह से स्थिर नहीं है, लेकिन मैं इस संदर्भ में "स्थैतिक" ले जाऊंगा इसका मतलब है कि मोटे तौर पर "प्रशासक के हस्तक्षेप के बिना नहीं बदलता है"।

/ etc / opt अधिक विशिष्ट है, और इसका उद्देश्य इस प्रकार है:

ऐड-ऑन एप्लिकेशन सॉफ़्टवेयर पैकेजों के लिए होस्ट-विशिष्ट कॉन्फ़िगरेशन फ़ाइलों को निर्देशिका के भीतर स्थापित किया जाना चाहिए /etc/opt/<subdir>, जहां उस पैकेज से स्थैतिक डेटा संग्रहीत किया जाता है , जहां <subdir>सबट्री का नाम /optहै।

चूँकि आप सॉफ़्टवेयर को / ऑप्ट के तहत स्थापित कर रहे हैं, इसलिए विन्यास फाइल इस प्रकार एक उपनिर्देशिका या पदानुक्रम के तहत / etc / ऑप्ट में जाना चाहिए।

बेशक, कुछ भी नहीं चाहिए कि आपका सिस्टम एफएचएस के अनुरूप है, लेकिन यह दूसरों के लिए किसी भी फाइल को खोजने में बहुत आसान बना देगा, जिसकी उन्हें तलाश है क्योंकि उन्हें पता होगा कि वे उन्हें कहां ढूंढ सकते हैं।

चूँकि यह आंतरिक रूप से विकसित सॉफ्टवेयर के बारे में है, इसलिए मैं दृढ़ता से यह भी सुझाव दूंगा कि आप स्थान को विन्यास योग्य बनाएँ । भले ही यह मेकफाइल में किए गए एक मैक्रो डिक्लेरेशन के माध्यम से केवल विन्यास योग्य हो और स्रोत से पूर्ण पुनर्निर्माण के माध्यम से प्रभावित हो, लेकिन यह अभी भी स्रोत कोड में एक विशिष्ट स्थान को हार्डकोड करने से बहुत बेहतर है हर जगह आप एक कॉन्फ़िगरेशन फ़ाइल खोलना चाहते हैं।


यह वास्तव में पहले से ही एक .propertiesफ़ाइल में किया गया है । लेकिन फिलहाल, सॉफ्टवेयर के प्रत्येक संस्करण की एक /optउपनिर्देशिका में अपनी प्रति है , जो स्पष्ट रूप से आदर्श नहीं है और कुछ ऐसा है जिसे मैं बदलने का इरादा कर रहा था। यह सवाल "मुझे इसे क्या बदलना चाहिए" के बारे में है। धन्यवाद!
डुर्रोन 597
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.