11Jul

כיצד ליצור אוטומטית ו - Email סטטיסטיקת המחשב

חשוב לבדוק נתונים שונים ונתונים סטטיסטיים על השרת שלך כל יום, אבל זה גדל להיות מייגע.זה לא יהיה נחמד לקבל דוא"ל אחד עם כל מדגיש כל יום, אז אתה אפילו לא צריך לעלות על השרת כדי לבדוק בעיות?מדריך זה יראה לך כיצד להגדיר הודעות דוא"ל אוטומטיות ב- Linux ו- Windows.

אנחנו נהיה במיוחד כיסוי זה עבור אובונטו ו- Windows 8.1, עם Gmail לשמש שרת הדוא"ל כי הדואר נשלח.אם יש לך גרסה אחרת של לינוקס או Windows, או מעדיף להשתמש בשירות דוא"ל אחר, ההוראות כאן צריך להיות בקלות להתאמה.

הודעות דוא"ל אוטומטיות ב- Linux

אנחנו הולכים להשתמש בשתי חבילות שונות כדי להשיג זאת, ssmtp ו mailutils, אז להתקין את שניהם עם הפקודה הבאה:

$ sudo apt-get להתקין ssmtp mailutils

לאחר אלה מותקנים, אנחנו צריכיםכדי לבצע כמה שינויים בקובץ תצורת SSMTP:

$ sudo vi /etc/ssmtp/ ssmtp.conf

עריכת הקובץ עם שינויים אלה( זה בטוח רק למחוק את כל הטקסט בקובץ ולהעתיק / להדביק את ההגדרות האלה, אם תרצה):

# כתובת זו תקבל את הודעות האימייל, לכן הזן את הדוא"ל שלך כאן אם ברצונך לקבל אותן.

root [email protected]

# ציין את שרת הדוא"ל כאן( השאר כמו אם אתה משתמש ב- Gmail).

mailhub = smtp.gmail.com: 587

# שם הדומיין שממנו יגיע הדואר.

rewriteDomain = gmail.com

# כתובת הדוא"ל כי הודעות דוא"ל אלה צריכים להיות מ.

[email protected]

# SSL / הגדרות TLS, נדרש עבור Gmail ורוב שרתי דואר אחרים.

UseTLS = כן

UseSTARTTLS = כן

# שם המשתמש והסיסמה לחשבון Gmail שלך.

AuthUser = שם משתמש

AuthPass = סיסמה

# אפשר ליכולת לציין כתובת שונה מזו הנ"ל.

FromLineOverride = כן

כשתסיים לערוך את הקובץ, תרצה לשנות את ההרשאות שכן סיסמת Gmail מאוחסנת בטקסט רגיל.

$ /etc/ssmtp/ ssmtp.conf

$ sudo chown username.username /etc/ssmtp/ ssmtp.conf

זה תמיד בטוח יותר כדי להפוך את השורש לבעלים של הקובץ, אבל אז היינו צריכים להשתמש בפקודה sudo בכתב שלנו וזה היהלהנחות אותנו סיסמה, ובכך להביס את המטרה של אוטומציה של כל התהליך הזה.

אם אתה משתמש בשרת משותף ואתה חושש שהסיסמה שלך מאוחסנת בטקסט וקריא על ידי השורש, צור חשבון Gmail לזרוק או השתמש בשרת דוא"ל שאינו דורש שום סוג של אימות מלכתחילה.

כדי לוודא שהכל מוגדר כראוי, ננסה לבדוק את הודעת האימייל:

$ echo "Testing" |mail -s "בדיקת הגדרת דואר אלקטרוני" [email protected] "בדיקה" תהיה בגוף ההודעה, והנושא יהיה "בדיקת הגדרות דואר אלקטרוני". בדוק את האימייל שלך כדי לוודא שקיבלת אותו.

כתיבת סקריפט עבור הודעות דוא"ל

עכשיו שאנחנו יכולים לשלוח הודעות דוא"ל משורת הפקודה, בואו נכתוב סקריפט שישלח לנו קצת מידע בסיסי על המערכת שלנו.

#!/bin/ bash

# בדיקת שטח הכונן הקשיח

הד "שטח כונן קשיח:" & gt;/home/geek/ email.txt

df -h & gt; & gt;/home/geek/ email.txt

# ציין את המשתמשים המחוברים ב-

echo "משתמשים מחוברים כעת:" & gt; & gt;/home/geek/ email.txt

who & gt; & gt;/home/geek/ email.txt

# רשימת תהליכים הפועלים כרגע

echo "ריצה תהליכים:" & gt; & gt;/home/geek/ email.txt

ps -e & gt; & gt;/home/geek/ email.txt

# שלח את הדוא"ל

cat /home/geek/ email.txt |mail -s "מידע שרת יומי" [email protected]

# מחק את הקובץ שיצרנו

rm /home/geek/ email.txt

ברור שאתה יכול לקבל הרבה יותר מעמיק עם התסריט שלך ואפילו להפוך את העיצוב קצת יותר נחמד, אבלזה מה שהפלט נראה בדוא"ל שלנו:

עכשיו את התסריט נכתב ונבדק, אנו יכולים להשתמש cron באופן אוטומטי לבצע אותו באותו זמן בכל יום.בדוגמה זו, נגדיר את הודעת האימייל שתישלח בשעה 2:00 בבוקר בכל בוקר, כדי שנוכל לעבור את הנתונים מאוחר יותר באותו יום.

$ crontab -e

עבור 2:00 בבוקר הודעות דוא"ל, הוסף:

0 2 * * * /home/geek/ script.sh

כתבנו מאמר שלם על קבצים crontab אם אתה צריך עזרה נוספת עם חלק זה.

הודעות דוא"ל אוטומטיות ב- Windows

שליחת הודעות דוא"ל בשורת הפקודה אפשרית באמצעות PowerShell, אך מצאנו כי היישום של פונקציונליות זו הוא הרבה יותר קל עם יישומי צד שלישי, במיוחד בעת שימוש ב- Gmail. SendEmail היא תוכנה חופשית זמינה עבור Windows זה עושה אינטגרציה עם מתזמן המשימות של Windows ו- Gmail רוח.לחץ על הקישור למעלה כדי להוריד את העותק האחרון, וודא שאתה תופס את הגירסה הנתמכת TLS.לאחר הורדת SendEmail, לחלץ את קובץ ה- zip ולשים את התוכן איפשהו שאתה יכול לאחסן אותם כל עוד אתה מתכנן לשלוח הודעות דוא"ל אוטומטיות.בדוגמה זו, אנחנו פשוט הולכים לאחסן את התוכנית ב C: \ SendEmail

בואו לבדוק את SendEmail כדי לקבל תחושה מהירה איך זה עובד.פתח שורת פקודה על-ידי הקלדת cmd בתפריט התחל או הפעלה( Ctrl + R).

כאשר שורת הפקודה פתוחה, השתמש בפקודת שינוי הספריה כדי לנווט למקום שבו שמרת את הקבצים SendEmail.

cd: \ SendEmail

עכשיו אנחנו יכולים לנסות לשלוח הודעת דוא"ל לבדיקה עם הפקודה הבאה:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xppassword -u "בדיקת נושא דוא"ל" -m "זוהי הודעת בדיקה."

ברור, להחליף "שם משתמש" ו "סיסמה" עם אישורי החשבון שלך לפני ביצוע הפקודה.

הנה מה שהפקודה לעיל עושה:

SendEmail מבצע את התוכנית.

-t - כתובת

-t -

-s - שרת SMTP

-xu - שם משתמש חשבון

-xp - סיסמת חשבון

-u - נושא דוא"ל

-m - טקסט גוף הדוא"ל

בדוק את תיבת הדואר הנכנס שלך כדי לוודאקיבלת את הודעת האימייל של הבדיקה, ולאחר מכן נוכל להמשיך לכתוב סקריפט שישלח אלינו מידע על השרת.

כתיבת סקריפט עבור הודעות דוא"ל

כדי להפיק את המרב מהסקריפט שלנו, אנחנו הולכים לכתוב אותו עבור PowerShell.פתח את Windows PowerShell ISE על ידי הקלדת powershell_ise.exe להפעלת הפעלה( Ctrl + R).

בצד הימני של חלון PowerShell ISE, באפשרותך לפרט כל פקודה ש- PowerShell מסוגל לבצע.זה אמור לתת לך התחלה טובה על יצירת סוגי המידע שאתה צריך דיווח.בסקריפט שלך, אתה יכול גם לקרוא על תוכניות צד שלישי כדי פלט מידע גם( כלומר SendEmail הוא יישום צד שלישי אבל PowerShell ו cmd יכול להשתמש בו כדי לבצע משימות שהם בדרך כלל לא יכול).

עבור סקריפט לדוגמה שלנו, אנו נבדוק את השימוש בדיסק הנוכחי של כונן C, להציג את התהליכים הפועלים כרגע, ולהציג את כל הקבצים כי הם משותפים כעת דרך הרשת.

# בדיקת שטח הכונן הקשיח

הד "C: שימוש בכונן:" & gt;C: \ SendEmail \ info.txt

Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:' '|בחר גודל אובייקט, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt

# רשימת תהליכים הפועלים כרגע

echo "ריצה תהליכים:" & gt; & gt;C: \ SendEmail \ info.txt

get-process & gt; & gt;C: \ SendEmail \ info.txt

# רשימת הקבצים / התיקיות המשותפות כעת

הד "מניות SMB:" & gt; & gt;C: \ SendEmail \ info.txt

get-smbshare & gt; & gt;C: \ SendEmail \ info.txt

# שלח את הודעת הדוא"ל

סוג C: \ SendEmail \ info.txt |C: \ SendEmail \ SendEmail -f [email protected] -t [email protected] -s smtp.gmail.com -878 -xu username -xp password -u "פרטי שרת יומי"

# מחק את הקובץ שעשינו

rm C: \ SendEmail \ info.txt

בסקריפט זה, מידע שונה הוא outputted אל C: \ SendEmail \ info.txt, ולאחר מכן את הטקסט במסמך זה נשלח אלינו לפני שהוא נמחק.שמור את התסריט עם סיומת קובץ PS1( קובץ PowerShell).

עם סיום התסריט, הפעל בדיקה מהירה מהוראות הפעלה כדי לוודא שהיא פועלת כראוי.

פשוט להשתמש בפקודה powershell עם ארגומנט- and לציין את הנתיב אל התסריט שלך.

powershell -file "c: \ SendEmail \ daily-email.ps1"

בדוק את תיבת הדואר הנכנס שלך כדי לוודא שקיבלת את הודעת האימייל - אם לא, חפש את הסקריפט עבור שגיאות תחביר.הנה מה הדוא"ל שנוצר מתוך התסריט לדוגמה שלנו נראה כמו:

אתה יכול לשחק עם העיצוב( כגון מהדהד שורות ריקות בין טקסט) כדי להפוך אותו להציג nicer על המכשיר שלך, או יותר טוב אתה עדיין יכול להשתמש בתוכנית צד שלישי זה יהיהפלט את המידע הדרוש בפורמט קריא יותר מאשר Windows עושה( תהליך scripting עדיין יהיה זהה).

ברגע שאתה עובד את kinks ב התסריט שלך, אתה יכול להשתמש ב- Windows Task Scheduler כדי להפוך אותו לאוטומטי.פתח את מתזמן המשימות של Windows באמצעות תפריט 'התחל'.

כאשר מתזמן המשימות פתוח, בחר באפשרות פעולה & gt;יצירת משימה בסיסית.

שם משימה זו משהו כמו "יומי סקריפט דוא"ל" ולחץ הבא.במסך הבא, בחר את התדירות שבה תרצה שסקריפט האימייל שלך יפעל, כנראה ביום.לאחר מכן, בחר את הזמן שבו תרצה שהסקריפט יפעל, ולחץ על הבא.

עכשיו אתה צריך להיות בחלק "פעולה" של האשף, בחר "התחל תוכנית" והזן את אותו טקסט שהזנת את הפקודה הפעלה קודם לכן כדי לבדוק את הסקריפט שלנו.

פגע הבא ולאחר מכן פגע כן בחלון זה:

לחץ על סיום בתפריט האחרון, ואתה מסיים תזמון הודעות דוא"ל אוטומטיות שלך.