Linux में .d फ़ोल्डर को समझना

परिचय

यदि आपने Linux सिस्टम के साथ काम किया है, तो आपने इस तरह के नामों वाली निर्देशिकाएँ देखी होंगी /etc/logrotate.d/ या /etc/cron.d/. ये .d फ़ोल्डर MariaDB से SSH तक और कर्नेल से PAM तक की कई सेवाओं द्वारा उपयोग की जाने वाली परंपरा का पालन करते हैं। एक बार जब आप उनका उद्देश्य समझ लेते हैं, तो आप उन्हें हर जगह देखने लगेंगे—जैसे mariadb.conf.d, sshd_config.d, modprobe.d, और pam.d।

लेकिन किसी सिस्टम को इस तरह की निर्देशिकाओं की आवश्यकता क्यों है /etc/logrotate.d/ में कॉन्फ़िगरेशन फ़ाइलें रखने के लिए निर्देशिकाओं की आवश्यकता क्यों है, जबकि एक एकल कॉन्फ़िगरेशन फ़ाइल (जैसे, /etc/logrotate.conf) पहले से मौजूद है? यह लेख .d फ़ोल्डर के उद्देश्य और Linux सिस्टम प्रबंधन के लिए वे क्यों आवश्यक हैं, के बारे में बताता है।


.d फ़ोल्डर क्या हैं?

उद्देश्य: .d फ़ोल्डर

 .d फ़ोल्डर परंपरा उन सेवाओं के लिए कॉन्फ़िगरेशन फ़ाइलों के प्रबंधन को सरल बनाने हेतु मौजूद है, जिन्हें जटिल या मॉड्यूलर कॉन्फ़िगरेशन की आवश्यकता होती है। एकल विशाल कॉन्फ़िगरेशन फ़ाइल बनाए रखने के बजाय, .d फ़ोल्डर कॉन्फ़िगरेशन को छोटे, अधिक प्रबंधनीय भागों में विभाजित करने देते हैं।

ये रहे कारण कि .d फ़ोल्डर उपयोगी क्यों हैं:

  • मॉड्यूलर कॉन्फ़िगरेशन: सेवाएँ .d निर्देशिका से कई कॉन्फ़िगरेशन फ़ाइलें लोड कर सकती हैं, जिससे उपयोगकर्ता और पैकेज मुख्य कॉन्फ़िगरेशन फ़ाइल को बदले बिना सेटिंग जोड़ या संशोधित कर सकते हैं।
  • पैकेज प्रबंधन: जब पैकेज इंस्टॉल या अपडेट किए जाते हैं, तो वे अपनी कॉन्फ़िगरेशन फ़ाइलें .d निर्देशिका में जोड़ सकते हैं, बिना मौजूदा सेटिंग को ओवरराइट किए।
  • लचीलापन: व्यवस्थापक Ansible या स्क्रिप्ट जैसे टूल का उपयोग करके विशिष्ट कॉन्फ़िगरेशन फ़ाइलों को जोड़ने या हटाने को स्वचालित कर सकते हैं।

उदाहरण: /etc/logrotate.d/

/etc/logrotate.d/ का उपयोग क्यों करें?

 logrotate, logrotate.conf, जो मुख्य कॉन्फ़िगरेशन फ़ाइल है, लॉग फ़ाइलों के प्रबंधन के लिए सामान्य नियम परिभाषित करती है। हालांकि, जब आप कोई नई सेवा (जैसे, Apache या MySQL) इंस्टॉल करते हैं, तो उसे अतिरिक्त लॉग रोटेशन नियमों की आवश्यकता हो सकती है। मुख्य logrotate.conf फ़ाइल को संशोधित करने के बजाय, नई सेवा अपनी कॉन्फ़िगरेशन फ़ाइल को /etc/logrotate.d/।

उदाहरण के लिए:

  • /etc/logrotate.d/apache2 में Apache लॉग के लिए विशिष्ट लॉग रोटेशन नियम हो सकते हैं।
  • /etc/logrotate.d/mysql MySQL लॉग के लिए रोटेशन नियम परिभाषित कर सकती है।

यह मॉड्यूलर दृष्टिकोण सुनिश्चित करता है:

  • जिम्मेदारियों का पृथक्करण: प्रत्येक सेवा की अपनी कॉन्फ़िगरेशन फ़ाइल होती है।
  • रखरखाव में आसानी: कॉन्फ़िगरेशन फ़ाइलों को अन्य सेवाओं को प्रभावित किए बिना जोड़ा या हटाया जा सकता है।

.d फ़ोल्डर कैसे काम करते हैं?

फ़ाइल समावेशन

जब कोई सेवा शुरू होती है या अपना कॉन्फ़िगरेशन पुनः लोड करती है, तो वह अपने .d निर्देशिका की सभी फ़ाइलें स्वचालित रूप से शामिल हो जाती हैं। इन फ़ाइलों का एक्सटेंशन आमतौर पर निम्न होता है .conf।

उदाहरण के लिए:

  • Logrotate चलने पर /etc/logrotate.d/ की सभी फ़ाइलें पढ़ता है।
  • Systemd निम्न .d निर्देशिकाओं से कॉन्फ़िगरेशन ओवरराइड लोड करता है, जैसे /etc/systemd/system/ या /etc/systemd/system.conf.d/।

यदि .d फ़ोल्डर के अंदर की कोई फ़ाइल हटा दी जाती है, तो सेवा उसके कॉन्फ़िगरेशन को बाहर कर देगी, जिससे सिस्टम बिना त्रुटि के काम करता रहेगा।

स्वचालन और सुरक्षा

 .d फ़ोल्डर का उपयोग करने से स्वचालन कार्य सरल हो जाते हैं। उदाहरण के लिए:

  • स्वचालन टूल: Ansible जैसे टूल .d निर्देशिकाओं को प्रबंधित करके विशिष्ट कॉन्फ़िगरेशन फ़ाइलें जोड़ या हटा सकते हैं।
  • प्रत्यायोजित कॉन्फ़िगरेशन: सुरक्षा टीमें कुछ कॉन्फ़िगरेशन फ़ाइलों तक पहुँच प्रतिबंधित कर सकती हैं, उन्हें .d निर्देशिकाओं में रखकर, जिससे पूरी कॉन्फ़िगरेशन फ़ाइल को उजागर किए बिना आंशिक अपडेट किए जा सकते हैं।

प्रकार: .d फ़ोल्डर

Apache HTTPD कॉन्फ़िगरेशन

Debian/Ubuntu के तहत, Apache conf-available और mods-available जैसी निर्देशिकाओं का उपयोग करके कॉन्फ़िगरेशन प्रबंधित करता है। व्यवस्थापक निम्न आदेशों का उपयोग करके विशिष्ट मॉड्यूल या कॉन्फ़िगरेशन सक्षम या अक्षम कर सकते हैं: a2enmod या a2dismod।

Systemd कॉन्फ़िगरेशन

Systemd .d निर्देशिकाओं का उपयोग यूनिट फ़ाइलों के लिए ओवरराइड परिभाषित करने हेतु करता है। उदाहरण के लिए:

  • /etc/systemd/system.conf.d/ में सिस्टम-व्यापी कॉन्फ़िगरेशन ओवरराइड होते हैं।
  • /etc/systemd/system/<service>.d/ व्यवस्थापकों को सेवा-विशिष्ट ओवरराइड परिभाषित करने देता है।

ये निर्देशिकाएँ कॉन्फ़िगरेशन की प्राथमिकता को सरल बनाती हैं, जिससे यह सुनिश्चित होता है कि सक्रिय सेटिंग स्पष्ट और मॉड्यूलर हों।


लाभ: .d फ़ोल्डर

1. कॉन्फ़िगरेशन प्रबंधन को सरल बनाता है

बड़ी, जटिल कॉन्फ़िगरेशन फ़ाइलों को बनाए रखने के बजाय, .d फ़ोल्डर कॉन्फ़िगरेशन को छोटी, मॉड्यूलर फ़ाइलों में विभाजित करने देते हैं।

2. लचीलापन बढ़ाता है

कॉन्फ़िगरेशन फ़ाइलों को सेवा में बाधा डाले बिना या मुख्य फ़ाइल में व्यापक संपादन की आवश्यकता के बिना गतिशील रूप से जोड़ा या हटाया जा सकता है।

3. स्वचालन का समर्थन करता है

निम्न टूल Ansible, Puppet, या Chef का उपयोग करके .d निर्देशिकाओं को आसानी से प्रबंधित किया जा सकता है, ताकि कई सिस्टम पर कॉन्फ़िगरेशन तैनात या अपडेट किए जा सकें।

4. सुरक्षा में सुधार करता है

कॉन्फ़िगरेशन फ़ाइलों को .d निर्देशिकाओं को सौंपकर, व्यवस्थापक पूरे कॉन्फ़िगरेशन को उजागर किए बिना विशिष्ट फ़ाइलों तक पहुँच नियंत्रित कर सकते हैं।


निष्कर्ष

 .d फ़ोल्डर परंपरा Linux में कॉन्फ़िगरेशन को मॉड्यूलर, लचीले और स्वचालित तरीके से प्रबंधित करने का एक शक्तिशाली साधन है। चाहे आप लॉग रोटेशन नियमों, Apache मॉड्यूल, या Systemd ओवरराइड के साथ काम कर रहे हों, .d निर्देशिकाओं को समझने से सिस्टम प्रशासन कार्य बहुत सरल हो सकते हैं।

टिप्पणी छोड़ें