का उपयोग कर आईएनआई फ़ाइल में अद्यतन var मैं सर्वर के विभिन्न पहलुओं को कॉन्फ़िगर करने के लिए एक बैश स्क्रिप्ट लिखने का प्रयास कर रहा हूं। यहां संदर्भ एक चर के एक फ़ाइल को एक conf फ़ाइल (ini प्रारूप) में दूसरे मान के साथ बदल रहा है।bash
संदर्भ
[ssh-iptables]
enabled = false
है और मैं बस सही करने के लिए झूठी बदलने की जरूरत है।
आमतौर पर मैं सिर्फ sed
sed -i 's/^enabled = false/enabled = true/g' /etc/fail2ban/jail.conf
का एक सरल सा के साथ ऐसा होता है लेकिन enabled = false
कई स्थानों में मौजूद है।
मुझे कोई सफलता
awk -F ":| " -v v1="true" -v opt="enabled" '$1 == "[ssh-iptables]" && !f {f=1}f && $1 == opt{sub("=.*","= "v1);f=0}1' /etc/fail2ban/jail.conf
ऊपर this forum thread से प्राप्त किया गया था, लेकिन मैं वास्तव में नहीं है कैसे लिपियों में इसका इस्तेमाल करने के लिए यह काम करने के लिए के लिए पर्याप्त समझ है साथ awk
का उपयोग कर की कोशिश की है। सभी यह करने के लिए लगता है की cat /etc/fail2ban/jail.conf
मैं कुछ अन्य लिपियों जो काफी लंबे समय तक रहे हैं, जो आदर्श के रूप में इस INI फ़ाइलों का भार का क्या होगा नहीं है पाया है बराबर तो मैं आशा करती हूं कि किसी ने मुझे सही करने में मदद कर सकते है कोड के ऊपर या मुझे सही दिशा में इंगित करें।
क्षमा करें अगर यह सर्वरफॉल्ट पर है, लेकिन जैसा कि यह सर्वर कॉन्फ़िगरेशन की जटिलताओं के बजाय स्क्रिप्टिंग है, मुझे लगता है कि यहां अधिक उपयुक्त हो सकता है।
यह दुर्भाग्य से काम नहीं कर रहा है। 'टेबल]' और 'सक्षम =' के बीच एक लाइन ब्रेक है लेकिन इसे हटाने से कोई फर्क नहीं पड़ता। क्या यह लाइन एंडिंग आदि के बारे में परवाह करता है? –
@BenSwinburne मैंने इसे कॉपी करते समय प्रारंभिक '^' के स्थान को गलती से स्थानांतरित कर दिया। यह अब काम करना चाहिए। –
यह वास्तव में करता है! उत्तम। बहुत बहुत धन्यवाद। –