बैश स्क्रिप्ट सिस्टम एडमिनिस्ट्रेटर के काम का एक महत्वपूर्ण हिस्सा है। वे आपको सांसारिक और महत्वपूर्ण दोनों कार्यों को स्वचालित करने की अनुमति देते हैं।
स्क्रिप्ट के साथ सबसे अच्छी चीजों में से एक यह है कि वे मानवीय हस्तक्षेप के बिना स्वतंत्र रूप से चल सकती हैं, लेकिन कभी-कभी उपयोगकर्ता पासवर्ड की आवश्यकता वाले कार्यों को स्वचालित करना चुनौतीपूर्ण हो सकता है। आइए देखें कि आप सुरक्षा से समझौता किए बिना पासवर्ड की आवश्यकता वाली स्क्रिप्ट को सुरक्षित रूप से कैसे स्वचालित कर सकते हैं।
एक साधारण स्क्रिप्ट बनाना
मान लें कि आप एक सरल स्क्रिप्ट बनाना चाहते हैं जो आपके लिनक्स होम फोल्डर को एक दूरस्थ स्थान पर बैकअप करती है ताकि डेटा हानि के मामले में आप आसानी से अपने डेटा को पुनर्स्थापित कर सकें।
अपने होम फ़ोल्डर में बैश स्क्रिप्ट फ़ाइल बनाकर प्रारंभ करें, स्पर्श आदेश का उपयोग करना या कोई अन्य तरीका, और इसे नाम दें बैकअप_होम.श. अपनी पसंद के किसी भी नाम और निर्देशिका का बेझिझक उपयोग करें।
स्क्रिप्ट का उपयोग करता है rsync कमांड, एक शक्तिशाली फाइल कॉपी करने वाला उपकरण, आपकी स्थानीय होम डाइरेक्टरी की सभी फाइलों को रिमोट सर्वर पर बैकअप करने के लिए।
निम्न स्क्रिप्ट की सामग्री को कॉपी करें और इसे अपनी बैश फ़ाइल में पेस्ट करें। उपयोगकर्ता जॉन को अपने स्थानीय घरेलू उपयोगकर्ता के सही नाम से बदलना याद रखें। दूरस्थ सर्वर के लिए सही उपयोगकर्ता नाम और IP पता भी प्रदान करें।
#!/बिन/बैश
# डेटा को रिमोट सर्वर पर कॉपी करें
rsync -avl --mkpath /home/john user_name@दूर_सर्वर/होम/बैकअप
यदि आपके पास परीक्षण करने के लिए दूरस्थ सर्वर नहीं है, तो आप बस कर सकते हैं वर्चुअलबॉक्स स्थापित करें और एक वीएम सेट करें आपकी स्थानीय मशीन पर। अपने दूरस्थ सर्वर के रूप में VM अतिथि का उपयोग करें।
फ़ाइल सहेजें। स्क्रिप्ट को निष्पादित करने के लिए आपको कमांड का उपयोग करके इसे निष्पादित करने की अनुमति देनी होगी सुडो चामोद 755. सभी उपयोगकर्ता स्क्रिप्ट को निष्पादित कर सकते हैं लेकिन केवल sudo उपयोगकर्ता ही फ़ाइल को संशोधित कर सकते हैं।
अंत में, कमांड का उपयोग करके टर्मिनल से बैश स्क्रिप्ट निष्पादित करें:
./backup_home.sh
जब भी आप इस स्क्रिप्ट को चलाते हैं, आपको रिमोट सर्वर पासवर्ड दर्ज करने के लिए कहा जाएगा। यह आदर्श नहीं है यदि आप मानवीय हस्तक्षेप के बिना स्क्रिप्ट चलाना चाहते हैं, जैसे क्रॉन का उपयोग करते समय।
स्वचालित पासवर्ड लॉगिन
स्थापित करना sshpass, एक गैर-संवादात्मक पासवर्ड प्रदाता, आपके स्थानीय पीसी या उस पीसी पर जिससे आप स्क्रिप्ट चलाएंगे।
डेबियन-आधारित डिस्ट्रोस पर
यदि आप उबंटू, पॉप!_ओएस, और लुबंटू जैसे डेबियन-आधारित डिस्ट्रो पर हैं:
सुडो उपयुक्त अद्यतन && सुडो उपयुक्त स्थापित करना sshpass
आरएचईएल और फेडोरा पर
dnf स्थापित करना sshpass
Sshpass को स्थापित करने के बाद स्क्रिप्ट को संशोधित करें ताकि यह निम्नानुसार दिखाई दे।
#!/बिन/बैश
# डेटा को रिमोट सर्वर पर कॉपी करें
एसएचपास -पी "आपका पासवर्ड" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup
यहां आप सादा पाठ में पासवर्ड प्रदान करते हैं। जाहिर है, यह आदर्श तरीका नहीं है, क्योंकि यह सुरक्षित नहीं है और अच्छा अभ्यास नहीं है। यदि स्क्रिप्ट कभी गलत हाथों में पड़ जाती है, तो आप गंभीर संकट में पड़ जाते हैं।
इसे और अधिक सुरक्षित बनाने के लिए, हम GnuPG, एक सुरक्षित और ओपन-सोर्स एन्क्रिप्शन उपकरण का उपयोग करेंगे।
अपना पासवर्ड एन्क्रिप्ट करना
जीएनयूपीजी अधिकांश लिनक्स सिस्टम पर डिफ़ॉल्ट रूप से स्थापित है, लेकिन यदि यह आपके सिस्टम पर स्थापित नहीं है, यहाँ GnuPG स्थापित करने का तरीका बताया गया है.
नाम से एक हिडन फाइल बनाएं रहस्य कमांड का उपयोग करना रहस्य स्पर्श करें. चूंकि हमने फ़ाइल को अतिरिक्त सुरक्षा उपाय के रूप में डिफ़ॉल्ट रूप से छिपा दिया है, यहां बताया गया है कि आप कैसे कर सकते हैं लिनक्स पर छिपी हुई फाइलें देखें.
सीक्रेट फाइल में, अपने रिमोट पीसी का पासवर्ड डालें और इसे सेव करें।
अगला, का उपयोग करके फ़ाइल को एन्क्रिप्ट करें gpg आज्ञा।
सुडोgpg.रहस्य
एन्क्रिप्टेड फ़ाइल खोलने के लिए आपको एक सुरक्षित और मजबूत पासफ़्रेज़ दर्ज करने के लिए कहा जाएगा।
GnuPG एक्सटेंशन के साथ एक नई फ़ाइल बनाएगा .gpg पुराने फ़ाइल नाम के साथ जोड़ा गया। आपका नया फ़ाइल नाम अब होना चाहिए रहस्य.gpg, यह मानते हुए कि आपने इसका उपयोग किया रहस्य फ़ाइल का नाम।
यदि आप Secrets.gpg की सामग्री का उपयोग करते हुए देखते हैं बिल्ली आदेश, आपको यह दिखाने के लिए कि आपका पासवर्ड एन्क्रिप्ट किया गया है, आपको कुछ निरर्थक पाठ के साथ प्रस्तुत किया जाएगा।
फ़ाइल की सामग्री को सादे पाठ में देखने के लिए, आपको निम्न कमांड का उपयोग करके इसे डिक्रिप्ट करना होगा (आपको एन्क्रिप्शन के दौरान सेट किए गए पासवर्ड को दर्ज करने के लिए कहा जाएगा):
gpg-dqगुप्त.gpg
अपनी स्क्रिप्ट में एन्क्रिप्टेड पासवर्ड का उपयोग करना
स्क्रिप्ट में एन्क्रिप्टेड पासवर्ड का उपयोग करने के लिए, स्क्रिप्ट को निम्नानुसार अपडेट करें:
#!/बिन/बैश
# डेटा को रिमोट सर्वर पर कॉपी करें
जीपीजी -डीक्यू सीक्रेट्स.जीपीजी | sshpass rsync -avl --mkpath /home/john user_name@दूर_सर्वर/होम/बैकअप
बैकअप स्क्रिप्ट फिर से चलाएँ, और इस बार आपको पासवर्ड के लिए संकेत नहीं दिया जाएगा।
बैश लिपियों के साथ कार्यों को स्वचालित करें
GnuGP का उपयोग अक्सर आपके पीसी पर संवेदनशील फाइलों और डेटा को सुरक्षित करने के लिए किया जाता है और यह Linux पर स्वचालित बैश स्क्रिप्ट में पासवर्ड सुरक्षित करने के लिए भी एक बढ़िया टूल है।
आप बैश स्क्रिप्ट के साथ बहुत कुछ कर सकते हैं। बैश एक शक्तिशाली उपकरण है जो आपको लिनक्स पर बहुत सी चीजों को स्वचालित करने में मदद कर सकता है और बैश स्क्रिप्ट लिखना सीखना एक सार्थक निवेश है।