كيف تولد تلقائيا والالكترونيات احصائيات الكمبيوتر
من المهم التحقق من بيانات وإحصائيات السجل المختلفة على الخادم كل يوم ، ولكنها تنمو لتصبح مملة. ألن يكون من اللطيف استلام بريد إلكتروني واحد يحتوي على جميع النقاط البارزة كل يوم ، لذلك لا تحتاج حتى إلى الحصول على الخادم للتحقق من المشاكل؟ سيوضح لك هذا الدليل كيفية تكوين رسائل البريد الإلكتروني التلقائية على Linux و Windows.
سنغطي هذا بشكل خاص لـ Ubuntu و Windows 8.1 ، مع استخدام Gmail كخادم البريد الإلكتروني الذي يتم إرسال البريد منه. إذا كان لديك إصدار آخر من Linux أو Windows ، أو تفضل استخدام بعض خدمات البريد الإلكتروني الأخرى ، فيجب أن تكون الإرشادات هنا قابلة للتكيف بسهولة.
رسائل البريد الإلكتروني الآلي في لينكس
سنستخدم حزمتين مختلفتين لإنجاز هذا ، ssmtp و mailutils ، لذا قم بتثبيت كلاهما باستخدام الأمر التالي:
$ sudo apt-get install ssmtp mailutils
وبمجرد تثبيتها ، نحتاج إلى إجراء بعض التغييرات على ملف تكوين SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
قم بتحرير الملف باستخدام هذه التغييرات (من الآمن فقط مسح كل النص الموجود في الملف ونسخ / لصق هذه الإعدادات ، إذا كنت ترغب في ذلك):
# سيتلقى هذا العنوان رسائل البريد الإلكتروني ، لذلك أدخل بريدك الإلكتروني هنا إذا كنت ترغب في استلامه.
# حدد خادم البريد الإلكتروني هنا (اتركه كما لو كنت تستخدم Gmail).
mailhub = smtp.gmail.com: 587
# اسم المجال الذي سيأتي منه البريد.
rewriteDomain = gmail.com
# عنوان البريد الإلكتروني الذي يجب أن تكون عليه هذه الرسائل الإلكترونية.
# إعدادات SSL / TLS ، مطلوبة لـ Gmail ومعظم خوادم البريد الأخرى.
UseTLS = نعم
UseSTARTTLS = نعم
# اسم المستخدم وكلمة المرور لحساب Gmail الخاص بك.
AuthUser = اسم المستخدم
AuthPass = كلمة المرور
# السماح بالقدرة على تحديد عنوان من عنوان مختلف عن العنوان الوارد أعلاه.
FromLineOverride = نعم
عند الانتهاء من تعديل الملف ، ستحتاج إلى تغيير الأذونات منذ أن يتم تخزين كلمة مرور Gmail الخاصة بك في نص عادي.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
دائمًا ما يكون أكثر أمانًا لتجذير مالك الملف ، ولكن عندئذٍ سيتعين علينا استخدام الأمر sudo في النص البرمجي لدينا ، وسيطلب منا كلمة مرور ، وبالتالي يهزم الغرض من أتمتة هذه العملية بأكملها.
إذا كنت تستخدم خادمًا مشتركًا وكنت قلقًا بشأن تخزين كلمة المرور الخاصة بك في نص عادي وقرائتها بواسطة الجذر ، فقم بإنشاء حساب Gmail نهائي أو استخدام خادم بريد إلكتروني لا يتطلب أي نوع من المصادقة في المقام الأول.
للتأكد من أن كل شيء تمت تهيئته بشكل صحيح ، لنجرب بريدًا إلكترونيًا تجريبيًا:
صدى $ "اختبار" | mail -s "Testing mail setup" [email protected]
سيكون "الاختبار" في نص الرسالة الإلكترونية وسيكون الموضوع "اختبار إعداد البريد". تحقق من بريدك الإلكتروني للتأكد من استلامه.
كتابة سيناريو لرسائل البريد الإلكتروني
الآن بعد أن أصبح بإمكاننا إرسال رسائل بريد إلكتروني من سطر الأوامر ، دعنا نكتب نصًا يُرسل إلينا بعض المعلومات الأساسية عن نظامنا.
#! / بن / سحق
# تحقق من مساحة القرص الصلب
صدى "مساحة القرص الصلب:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# قائمة المستخدمين الذين تم تسجيل الدخول
صدى "المستخدمون الذين قاموا بتسجيل الدخول حاليًا:" >> /home/geek/email.txt
من ">> /home/geek/email.txt
# قائمة العمليات قيد التشغيل حاليا
صدى "العمليات الجارية:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# إرسال البريد الإلكتروني
cat /home/geek/email.txt | mail -s "Daily server information" [email protected]
# احذف الملف الذي أنشأناه
rm /home/geek/email.txt
من الواضح أنه يمكنك الحصول على مزيد من العمق مع البرنامج النصي الخاص بك وحتى جعل تنسيق أجمل قليلا ، ولكن هذا هو ما يبدو الإخراج في البريد الإلكتروني لدينا:
والآن بعد كتابة البرنامج النصي واختباره ، يمكننا استخدام cron لتنفيذه تلقائيًا في نفس الوقت كل يوم. في هذا المثال ، سنقوم بتهيئة البريد الإلكتروني ليتم إرساله في الساعة 2:00 صباحًا كل صباح ، حتى نتمكن من الاطلاع على البيانات في وقت لاحق من ذلك اليوم.
$ crontab -e
ل 2: 00 صباحا رسائل البريد الإلكتروني ، إضافة:
0 2 * * * /home/geek/script.sh
لقد كتبنا مقالة كاملة عن ملفات crontab إذا كنت بحاجة إلى مزيد من المساعدة في هذا الجزء.
رسائل البريد الإلكتروني الآلي في ويندوز
يمكن إرسال رسائل البريد الإلكتروني في سطر الأوامر من خلال PowerShell ، لكننا وجدنا أن تنفيذ هذه الوظيفة أسهل كثيرًا مع تطبيقات الجهات الخارجية ، وخاصة عند استخدام Gmail. يعد SendEmail برنامجًا مجانيًا متوفرًا لـ Windows يجعل التكامل مع برنامج جدولة مهام Windows و Gmail أمرًا سهلاً. انقر على الرابط أعلاه لتنزيل أحدث نسخة ، وتأكد من الحصول على الإصدار المدعوم من طبقة النقل الآمنة.
بمجرد تنزيل SendEmail ، قم باستخراج ملف zip ووضع المحتويات في مكان ما بحيث يمكنك تخزينها طالما أنك تخطط لإرسال رسائل بريد إلكتروني تلقائية. في هذا المثال ، سنقوم فقط بتخزين البرنامج في C: \ SendEmail
دعونا اختبار SendEmail للحصول على شعور سريع لكيفية عمله. افتح موجه الأوامر بكتابة cmd في القائمة ابدأ أو التشغيل (Ctrl + R).
عند فتح موجه الأوامر ، استخدم أمر تغيير الدليل للتنقل إلى المكان الذي قمت فيه بتخزين ملفات SendEmail.
القرص المضغوط C: \ SendEmail
يمكننا الآن محاولة إرسال بريد إلكتروني تجريبي باستخدام الأمر التالي:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u "Test email subject" -m "This is a test email."
من الواضح ، استبدل "اسم المستخدم" و "كلمة المرور" باستخدام بيانات اعتماد حسابك قبل تنفيذ الأمر.
إليك ما يفعله الأمر أعلاه بالفعل:
ارسل بريد الكتروني
ينفذ البرنامج.
-F
- من العنوان
-تي
- إلى عنوان
-الصورة
- خادم SMTP
-شو
- اسم صاحب الحساب
-إكس بي
- كلمة مرور الحساب
-ش
- موضوع البريد الإلكتروني
-م
- نص البريد الإلكتروني
تحقق من بريدك الوارد للتأكد من أنك تلقيت البريد الإلكتروني التجريبي ، ومن ثم يمكننا الانتقال إلى كتابة نص برمجي سيُرسل إلينا معلومات الخادم.
كتابة سيناريو لرسائل البريد الإلكتروني
للحصول على أقصى استفادة من النص ، سنكتبه لـ PowerShell. فتح Windows PowerShell ISE بكتابة powershell_ise.exe في موجه تشغيل (Ctrl + R).
على الجانب الأيمن من نافذة PowerShell ISE ، يمكنك إدراج كل أمر تستطيع PowerShell تنفيذه. من المفترض أن يمنحك ذلك بداية جيدة لتوليد أنواع المعلومات التي تحتاج إلى الإبلاغ عنها. في البرنامج النصي ، يمكنك أيضًا الاتصال ببرامج الجهات الخارجية لإخراج المعلومات أيضًا (أي أن SendEmail هو تطبيق تابع لجهة خارجية ، ولكن يمكن استخدام PowerShell و cmd لإنجاز المهام التي لا يمكنها عادة).
بالنسبة للنموذج النصي الخاص بنا ، سوف نتحقق من استخدام القرص الحالي لمحرك الأقراص C ، ونعرض العمليات الجارية حاليًا ، ونعرض جميع الملفات التي تتم مشاركتها حاليًا عبر الشبكة.
# تحقق من مساحة القرص الصلب
echo "C: Drive Usage:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" "| تحديد حجم كائن ، FreeSpace >> C: \ SendEmail \ info.txt
# قائمة العمليات قيد التشغيل حاليا
صدى "العمليات الجارية:" >> C: \ SendEmail \ info.txt
الحصول على عملية >> C: \ SendEmail \ info.txt
# قائمة الملفات / المجلدات التي يجري تقاسمها حاليا
echo "SMB shares:" >> C: \ SendEmail \ info.txt
الحصول على smbshare >> C: \ SendEmail \ info.txt
# إرسال البريد الإلكتروني
اكتب C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u "Daily server info"
# احذف الملف الذي أنشأناه
ج: C: \ SendEmail \ info.txt
في هذا البرنامج النصي ، يتم إخراج المعلومات المختلفة إلى C: \ SendEmail \ info.txt ، وبعد ذلك يتم إرسال النص الموجود في هذا المستند إلينا قبل أن يتم حذفه. احفظ البرنامج النصي بامتداد ملف ps1 (ملف PowerShell).
مع الانتهاء من البرنامج النصي الخاص بك ، قم بإجراء اختبار سريع من موجه Run للتأكد من أنه يعمل بشكل صحيح.
مجرد استخدام بوويرشيل
الأمر مع -ملف
الوسيطة وتحديد مسار البرنامج النصي الخاص بك.
powershell -file "c: \ SendEmail \ daily-email.ps1"
تحقق من بريدك الوارد للتأكد من استلامك للبريد الإلكتروني - إذا لم يكن كذلك ، فاستعرض النص البرمجي بحثًا عن أخطاء في بناء الجملة. إليك ما يبدو عليه البريد الإلكتروني الذي تم إنشاؤه من النص البرمجي للمثال التالي:
يمكنك التلاعب بالتنسيق (مثل ارتداد الأسطر الفارغة بين النص) لجعله يعرض أجمل على جهازك ، أو أفضل من ذلك يمكنك استخدام برنامج تابع لجهة خارجية والذي سينتج المعلومات المطلوبة بتنسيق أكثر قابلية للقراءة مما يفعل Windows ( عملية البرمجة النصية ستظل هي نفسها).
بمجرد حل مشكلات النص البرمجي ، يمكنك استخدام برنامج جدولة مهام Windows لأتمتة العملية. افتح برنامج جدولة مهام Windows عبر قائمة "ابدأ".
مع فتح "برنامج جدولة المهام" ، حدد إجراء> إنشاء مهمة أساسية.
اسم هذه المهمة شيء مثل "نص البريد الإلكتروني اليومي" وانقر فوق التالي. في الشاشة التالية ، حدد التردد الذي تريد تشغيل نص برمجي البريد الإلكتروني فيه ، على الأرجح ، يوميًا. ثم اختر الوقت الذي تريد تشغيل البرنامج النصي فيه ، ثم اضغط على التالي.
الآن يجب أن تكون في الجزء "إجراء" من المعالج ، حدد "بدء برنامج" وأدخل نفس النص الذي أدخلناه في موجه "التشغيل" في وقت سابق لاختبار برنامجنا النصي.
انقر فوق التالي ثم اضغط على نعم في هذه النافذة:
انقر فوق "إنهاء" في القائمة الأخيرة ، وبذلك تنتهي من جدولة رسائل البريد الإلكتروني التلقائية الخاصة بك.