כיצד ליצור אוטומטית ו - Email סטטיסטיקת המחשב
חשוב לבדוק נתוני יומן שונים ונתונים סטטיסטיים על השרת שלך כל יום, אבל זה גדל להיות מייגע. זה לא יהיה נחמד לקבל הודעת דוא"ל אחת עם כל מדגיש כל יום, אז אתה אפילו לא צריך לעלות על השרת כדי לבדוק בעיות? מדריך זה יראה לך כיצד להגדיר הודעות דוא"ל אוטומטיות ב- Linux ו- Windows.
אנחנו נסקור את זה במיוחד עבור אובונטו ו- Windows 8.1, עם Gmail להיות בשימוש בתור שרת הדוא"ל כי הדואר נשלח. אם יש לך גרסה אחרת של לינוקס או Windows, או מעדיף להשתמש בשירות דוא"ל אחר, ההוראות כאן צריך להיות בקלות להתאמה.
אוטומטי הודעות דוא"ל ב - Linux
אנחנו הולכים להשתמש בשתי חבילות שונות כדי להשיג זאת, ssmtp ו mailutils, כך להתקין את שניהם עם הפקודה הבאה:
$ sudo apt-get להתקין ssmtp mailutils
לאחר התקנתן, עלינו לבצע מספר שינויים בקובץ תצורת SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
ערוך את הקובץ עם השינויים האלה (תוכל למחוק את כל הטקסט בקובץ ולהעתיק / להדביק את ההגדרות האלה, אם תרצה):
# כתובת זו תקבל את הודעות האימייל, לכן הזן את הדוא"ל שלך כאן אם ברצונך לקבל אותן.
# ציין את שרת הדוא"ל כאן (השאר כמו אם אתה משתמש ב- Gmail).
= html = smtp.gmail.com: 587
# שם הדומיין שממנו יגיע הדואר.
rewriteDomain = gmail.com
# כתובת האימייל שאליה יש לשלוח הודעות דוא"ל אלו.
# הגדרות SSL / TLS, הדרושות ל- Gmail ולרוב שרתי הדואר האחרים.
UseTLS = כן
השתמש ב- STARTTLS = כן
# שם המשתמש והסיסמה לחשבון Gmail שלך.
AuthUser = שם משתמש
AuthPass = סיסמה
# אפשר את היכולת לציין כתובת מכתובת שונה מזו הנ"ל.
FromLineOverride = כן
כשתסיים לערוך את הקובץ, תרצה לשנות את ההרשאות שכן סיסמת Gmail מאוחסנת בטקסט רגיל.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
זה תמיד בטוח יותר כדי להפוך את השורש הבעלים של הקובץ, אבל אז היינו צריכים להשתמש הפקודה sudo בכתב שלנו וזה ינחה אותנו סיסמה, ובכך להביס את המטרה של אוטומציה של כל התהליך הזה.
אם אתה משתמש בשרת משותף ואתה חושש שהסיסמה שלך מאוחסנת בטקסט וקריא על ידי השורש, צור חשבון Gmail לזרוק או השתמש בשרת דוא"ל שאינו דורש שום סוג של אימות מלכתחילה.
כדי לוודא שהכל מוגדר כראוי, ננסה לבדוק את הודעת האימייל:
$ הד "בדיקה" | "בדיקת הגדרות הדואר" [email protected]
"בדיקה" תהיה בגוף האימייל והנושא יהיה "בדיקת הגדרת הדואר". בדוק את הדוא"ל שלך כדי לוודא שקיבלת אותו.
כתיבת סקריפט עבור הודעות דוא"ל
עכשיו, כי אנחנו יכולים לשלוח הודעות דוא"ל משורת הפקודה, בואו לכתוב סקריפט שישלח לנו כמה מידע בסיסי על המערכת שלנו.
#! / bin / bash
# בדוק את הכונן הקשיח
הד "שטח כונן קשיח:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# ציין את המשתמשים שנכנסו למערכת
echo "משתמשים מחוברים כעת:" >> /home/geek/email.txt
מי >> /home/geek/email.txt
# רשימת תהליכים הפועלים כרגע
echo "ריצה תהליכים:" / / home / geek/email.txt
ps -e >> /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: \ Send Email
כעת אנו יכולים לנסות לשלוח הודעת בדיקה עם הפקודה הבאה:
SendEmail -f [email protected] -t [email protected] -s smtp.gmail.com -8787 -xu username -xp password -u "בדיקת נושא דוא"ל" -m "זוהי הודעת בדיקה."
ברור, להחליף "שם משתמש" ו "סיסמה" עם אישורי החשבון שלך לפני ביצוע הפקודה.
הנה מה שהפקודה שלעיל עושה:
שלח אימייל
מבצע את התוכנית.
-ו
- מכתובת
-t
- לכתובת
-s
- שרת SMTP
-xu
- שם משתמש בחשבון
-xp
- סיסמת החשבון
-u
- נושא האימייל
-M
- טקסט גוף דוא"ל - -
בדוק את תיבת הדואר הנכנס שלך כדי לוודא שקיבלת את הודעת האימייל של הבדיקה, ולאחר מכן נוכל להמשיך לכתוב סקריפט שישלח לנו מידע על השרת.
כתיבת סקריפט עבור הודעות דוא"ל
כדי להפיק את המרב מהסקריפט שלנו, אנחנו הולכים לכתוב אותו עבור PowerShell. פתח את Windows PowerShell ISE על ידי הקלדת powershell_ise.exe להפעלת הפעלה (Ctrl + R).
בצד הימני של חלון PowerShell ISE, באפשרותך לפרט כל פקודה ש- PowerShell מסוגל לבצע. זה אמור לתת לך התחלה טובה על יצירת סוגי המידע שאתה צריך דיווח. בתסריט שלך, אתה יכול גם לקרוא על תוכניות צד שלישי לפלט מידע גם (כלומר SendEmail הוא יישום צד שלישי אבל PowerShell ו cmd יכול להשתמש בו כדי לבצע משימות שהם בדרך כלל לא יכול).
עבור סקריפט לדוגמה שלנו, אנו נבדוק את השימוש הנוכחי בדיסק של כונן C, להציג את התהליכים הפועלים כרגע, ולהציג את כל הקבצים כי הם משותפים כעת דרך הרשת.
# בדוק את הכונן הקשיח
הד "C: שימוש בכונן:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | בחר גודל האובייקט, FreeSpace >> C: \ SendEmail \ info.txt
# רשימת תהליכים הפועלים כרגע
הד "תהליכים ריצה:" >> C: \ SendEmail \ info.txt
לקבל תהליך >> C: \ SendEmail \ info.txt
# רשימת הקבצים / התיקיות המשותפים כעת
הד "מניות SMB:" >> C: \ SendEmail \ info.txt
get-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 "פרטי שרת יומי"
מחק את הקובץ שביצענו
rm C: \ SendEmail \ info.txt
בתסריט זה, מידע שונה הוא outputted אל C: \ SendEmail \ info.txt, ולאחר מכן את הטקסט במסמך זה נשלח אלינו לפני שהוא נמחק. שמור את התסריט עם סיומת קובץ PS1 (קובץ PowerShell).
בסיום התסריט שלך, הפעל בדיקה מהירה מהוראות הפעלה כדי לוודא שהיא פועלת כהלכה.
פשוט להשתמש פגז כוח
הפקודה עם -קובץ
ארגומנט ולציין את הנתיב לסקריפט שלך.
Powerhell -file "c: \ SendEmail \ daily-email.ps1"
בדוק את תיבת הדואר הנכנס שלך כדי לוודא שקיבלת את הודעת האימייל - אם לא, חפש את הסקריפט עבור שגיאות תחביר. כך נראה הדוא"ל שנוצר מהסקריפט לדוגמה שלנו:
אתה יכול לשחק עם עיצוב (כגון מהדהד שורות ריקות בין טקסט) כדי להפוך אותו להציג nicer על המכשיר שלך, או יותר טוב אתה עדיין יכול להשתמש בתוכנית צד שלישי כי יהיה פלט את המידע הדרוש בפורמט קריא יותר מאשר Windows עושה ( את תהליך scripting עדיין יהיה זהה).
ברגע שאתה כבר עובד את kinks ב script שלך, אתה יכול להשתמש מתזמן המשימות של Windows כדי להפוך אותו. פתח את מתזמן המשימות של Windows באמצעות תפריט 'התחל'.
כאשר מתזמן המשימות פתוח, בחר פעולה> יצירת משימה בסיסית.
תן למשימה זו משהו כמו "סקריפט דוא"ל יומי" ולחץ על הבא. במסך הבא, בחר את התדירות שבה תרצה שסקריפט האימייל שלך יפעל, כנראה ביום. לאחר מכן, בחר את הזמן שבו תרצה שהסקריפט יפעל, ולחץ על הבא.
עכשיו אתה צריך להיות בחלק "פעולה" של האשף, בחר "התחל תוכנית" והזן את אותו טקסט שהזנת את הפקודה הפעלה קודם לכן כדי לבדוק את הסקריפט שלנו.
לחץ על הבא ולאחר מכן הקש על כן בחלון זה:
לחץ על סיום בתפריט האחרון, וסיימת תזמון הודעות האימייל האוטומטיות שלך.