मैं लिनक्स शैल स्क्रिप्ट के लिए नौसिखिया हूं। मैं लिनक्स शैल स्क्रिप्ट द्वारा एक पीएचपी वेब एप्लिकेशन द्वारा आईपी पते को बदलना चाहता हूं।
मैंने अपना PHP वेब एप्लिकेशन और शेल स्क्रिप्ट पूरी कर ली है। इससे पहले कि वे एक साथ काम करें और काम करें, मैं परीक्षण करना चाहूंगा कि क्या शेल स्क्रिप्ट ठीक से चल सकता है।
मेरा लिनक्स शैल स्क्रिप्ट $ 0 (स्क्रिप्ट नाम) को छोड़कर 7 चर को संग्रहीत करेगा।:
- नेटवर्क इंटरफ़ेस फ़ाइल (
/etc/sysconfig/network-scripts/ifcfg-{XXX}
) - पुराना आईपी एड्रेस
- नया आईपी पता
- पुराना सबनेट मास्क
- न्यू सबनेट मास्क
- पुराना गेटवे
- नया द्वार
अधिकांश जाँच पहले से ही मेरे PHP एप्लिकेशन द्वारा प्रदर्शन की गई थी क्योंकि मैं लिनक्स शैल स्क्रिप्ट के लिए नौसिखिया हूं, मैं अपनी शेल स्क्रिप्ट पर ऐसा नहीं करना चाहता। मेरा PHP एप्लिकेशन यह सुनिश्चित कर सकता है कि डेटा सही है और मूल्यों से भरा है।
इसलिए इस शेल स्क्रिप्ट को चलाने के लिए, मैं परिणाम देखने के लिए निम्नलिखित टाइप करता हूं:
sh ./ipchanger.sh /etc/sysconfig/network-scripts/ens32 192.168.1.18 192.168.1.201 32 24 192.168.1.1 192.168.1.1
अर्थ:
- लक्ष्य नेटवर्क स्क्रिप्ट फ़ाइल निर्दिष्ट करें।
- से आईपी बदलने
192.168.1.18
के लिए192.168.1.201
। - से सबनेट मास्क बदलने
255.255.255.255
के लिए255.255.255.0
।
वास्तव में यह निम्नलिखित कमांड चलाएगा:
sudo sed -i -r "s/$currentIpAddress/$newIpAddress/g" $fileName
sudo sed -i -r "s/$currentSubnetMask/$newSubnetMask/g" $fileName
sudo sed -i -r "s/$currentGateway/$newGateway/g" $fileName
यह कोई त्रुटि नहीं देता है और इसके दिखने में अच्छा है क्योंकि नेटवर्क स्क्रिप्ट फ़ाइल की अंतिम संशोधित तिथि अपडेट हो गई है। लेकिन जब मैंने फाइल खोली तो कुछ भी नहीं बदला।
फिर मैं echo
आज्ञा देता हूं , यह वही आज्ञा देता है जो मैं चाहता था। फिर मैं कमांड प्रॉम्प्ट द्वारा सभी तीन लाइनों को चलाता हूं और फ़ाइल को फिर से जांचता हूं, सभी जानकारी बदल गई है!
echo $SHELL
याps -p $$
दोनों इंटरफेस में प्रयास करना चाहते हैं।