यह गाइड आपको दिखाएगी कि Linux कमांड लाइन और शेल स्क्रिप्ट के माध्यम से ईमेल कैसे भेजें, साथ ही उन ईमेल में अटैचमेंट कैसे जोड़ें।
Linux कमांड लाइन बहुत शक्तिशाली हो सकती है एक बार जब आप जानते हैं कि इसका उपयोग कैसे करना है। आप डेटा पार्स कर सकते हैं, प्रोसेस मॉनिटर कर सकते हैं, बैकअप ऑटोमेट कर सकते हैं और इसका उपयोग करके बहुत सी अन्य उपयोगी और अच्छी चीजें कर सकते हैं। अक्सर एक रिपोर्ट जनरेट करके उसे मेल करने की आवश्यकता होती है। यह दिन के बैकअप के ठीक से होने या न होने की सूचना जितना सरल हो सकता है। मैं आपको Linux कमांड लाइन और शेल स्क्रिप्ट में मेल भेजने के साथ शुरुआत करने में मदद करूंगा। हम कमांड लाइन से अटैचमेंट भेजने को भी कवर करेंगे। हम "mail" कमांड से शुरू करेंगे।
Mail कमांड
यह जांचने के लिए एक त्वरित टेस्ट चलाएं कि "sendmail" एप्लिकेशन इंस्टॉल है और सही ढंग से काम कर रहा है। निम्न कमांड निष्पादित करें, "you@youremailid.com" को अपने ईमेल पते से बदलें।
# mail -s "Hello world" you@youremailid.com
रिटर्न कुंजी दबाएं और आप एक नई लाइन पर आएंगे। टेक्स्ट "This is a test from my server" दर्ज करें। टेक्स्ट के बाद फिर से रिटर्न कुंजी दबाएं। फिर Control+D कुंजी संयोजन दबाकर जारी रखें। कमांड प्रॉम्प्ट आपसे पूछेगा कि क्या आप किसी अन्य पते पर मेल की एक कॉपी मार्क करना चाहते हैं, फिर से Control+D दबाएं। अपना मेलबॉक्स जांचें। यह कमांड उल्लिखित ईमेल आईडी पर "Hello world" विषय के साथ एक मेल भेज देगा।
कमांड चलाते समय मेल के बॉडी में कंटेंट जोड़ने के लिए आप निम्न विकल्पों का उपयोग कर सकते हैं। यदि आप अपना टेक्स्ट जोड़ना चाहते हैं:
# echo "This will go into the body of the mail." | mail -s "Hello world" you@youremailid.com
और यदि आप चाहते हैं कि मेल फ़ाइल से कंटेंट पढ़े:
# mail -s "Hello world" you@youremailid.com < /home/calvin/application.log
Mail कमांड में कुछ अन्य उपयोगी विकल्प हैं:
-s subject (मेल का विषय)
-c email-address (इस "email-address" पर कॉपी मार्क करें, या CC)
-b email-address (इस "email-address" पर ब्लाइंड कार्बन कॉपी मार्क करें, या BCC)
यहां बताया गया है कि आप इन विकल्पों का उपयोग कैसे कर सकते हैं:
# echo "Welcome to the world of Calvin n Hobbes" | mail -s "Hello world" calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com
ईमेल अटैचमेंट के लिए MUTT का उपयोग
Mail कमांड का उपयोग करने की एक प्रमुख कमी यह है कि यह अटैचमेंट भेजने का समर्थन नहीं करता। दूसरी ओर, mutt इसका समर्थन करता है। मैंने इस सुविधा को विशेष रूप से उन स्क्रिप्ट के लिए उपयोगी पाया है जो गैर-पाठ्य रिपोर्ट या बैकअप जनरेट करती हैं जो आकार में अपेक्षाकृत छोटे हैं जिन्हें मैं कहीं और बैकअप करना चाहता हूं। बेशक, mutt आपको केवल अटैचमेंट भेजने से कहीं अधिक करने की अनुमति देता है। यह "mail" कमांड की तुलना में बहुत अधिक पूर्ण कमांड लाइन मेल क्लाइंट है। अभी हम केवल बुनियादी चीजों का पता लगाएंगे जिनकी हमें अक्सर आवश्यकता हो सकती है। यहां बताया गया है कि आप फ़ाइल को मेल में कैसे अटैच करेंगे:
# echo "Sending an attachment." | mutt -a backup.zip -s "attachment" calvin@cnh.com
यह कमांड calvin@cnh.com पर "attachment" विषय (-s) के साथ, बॉडी टेक्स्ट "Sending an attachment.", अटैचमेंट (-a) backup.zip वाला मेल भेजेगा। Mail कमांड की तरह आप किसी अन्य मेल आईडी पर कॉपी मार्क करने के लिए "-c" विकल्प का उपयोग कर सकते हैं।
शेल स्क्रिप्ट से ईमेल भेजना
अब, बुनियादी बातें कवर होने के साथ आप अपने शेल स्क्रिप्ट से मेल भेज सकते हैं। यहां एक सरल शेल स्क्रिप्ट है जो आपके पार्टीशन पर स्पेस के उपयोग की रीडिंग देती है और डेटा को आपको मेल करती है।
#!/bin/bash
df -h | mail -s "disk space report" calvin@cnh.com
इन लाइनों को अपने Linux सर्वर पर एक फ़ाइल में सेव करें और इसे चलाएं। आपको कमांड के परिणामों वाला मेल प्राप्त होना चाहिए। यदि, हालांकि, आपको इससे अधिक डेटा भेजने की आवश्यकता है तो आपको डेटा को टेक्स्ट फ़ाइल में लिखना होगा और मेल बनाते समय उसे मेल बॉडी में दर्ज करना होगा। यहां एक शेल स्क्रिप्ट का उदाहरण है जो डिस्क उपयोग के साथ-साथ मेमोरी उपयोग प्राप्त करती है, डेटा को अस्थायी फ़ाइल में लिखती है, और फिर इसे भेजे जा रहे मेल की बॉडी में दर्ज करती है:
#!/bin/bash
df -h > /tmp/mail_report.log
free -m >> /tmp/mail_report.log
mail -s "disk and RAM report" calvin@cnh.com < /tmp/mail_report.log
अब यहां एक अधिक जटिल समस्या है। आपको कुछ फ़ाइलों का बैकअप लेना है और उन्हें मेल करना है। पहले मेल की जाने वाली डायरेक्टरी को आर्काइव किया जाता है। फिर इसे mutt का उपयोग करके ईमेल अटैचमेंट के रूप में भेजा जाता है। ऐसा करने के लिए यहां एक स्क्रिप्ट है:
#!/bin/bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files
echo | mutt -a /tmp/backup.tar.gz -s "daily backup of data" calvin@cnh.com
अंतिम लाइन की शुरुआत में echo मेल की बॉडी में एक ब्लैंक जोड़ता है जिसे भेजा जा रहा है।
यह आपको Linux कमांड लाइन और शेल स्क्रिप्ट से मेल भेजने के साथ शुरुआत करने के लिए पर्याप्त होना चाहिए। दोनों mail और mutt के लिए अधिक विकल्पों के लिए "मैन पेज" पढ़ें (प्रत्येक पर पूर्ण मैनुअल के लिए "man mail" और "man mutt" कमांड दर्ज करें)। फिर मेल कमांड के साथ आप क्या कर सकते हैं, जैसे अपने आप को ऑटोमेटेड रिपोर्ट भेजना, के लिए अपनी कल्पना का उपयोग करें।