আমি লিনাক্স শেল স্ক্রিপ্টের নবাগত। আমি আইপি ঠিকানাটি লিনাক্স শেল স্ক্রিপ্টের মাধ্যমে পরিবর্তন করতে চাই এবং পিএইচপি ওয়েব অ্যাপ্লিকেশন দ্বারা কল করা চাই।
আমি আমার পিএইচপি ওয়েব অ্যাপ্লিকেশন এবং শেল স্ক্রিপ্ট শেষ করেছি। তারা একত্রিত হয়ে কাজ করার আগে, শেল স্ক্রিপ্টটি সঠিকভাবে চলতে পারে কিনা তা পরীক্ষা করতে চাই।
আমার লিনাক্স শেল স্ক্রিপ্ট $ 0 (স্ক্রিপ্টের নাম) বাদে 7 ভেরিয়েবল সংরক্ষণ করবে:
- নেটওয়ার্ক ইন্টারফেস ফাইল (
/etc/sysconfig/network-scripts/ifcfg-{XXX}
) - পুরানো আইপি ঠিকানা
- নতুন আইপি ঠিকানা
- ওল্ড সাবনেট মাস্ক
- নতুন সাবনেট মাস্ক
- ওল্ড গেটওয়ে
- নতুন গেটওয়ে
আমি লিনাক্স শেল স্ক্রিপ্টের নবাগত হিসাবে বেশিরভাগ চেকিং ইতিমধ্যে আমার পিএইচপি অ্যাপ্লিকেশন দ্বারা সম্পাদিত হয়েছিল, আমি আমার শেল স্ক্রিপ্টে এটি করতে চাই না। আমার পিএইচপি অ্যাপ্লিকেশনটি নিশ্চিত করতে পারে যে ডেটা সঠিক এবং মান দিয়ে পূর্ণ।
সুতরাং এই শেল স্ক্রিপ্টটি চালানোর জন্য, ফলাফলগুলি দেখতে আমি নিম্নলিখিত টাইপ করি:
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 $$
উভয় ইন্টারফেসে তা নিশ্চিত হওয়ার জন্য করতে পারেন।