Как да генерира автоматично и електронна поща компютърна статистика
Важно е да проверявате различни данни и статистики на сървъра си всеки ден, но то става досадно. Няма ли да е хубаво да получавате един имейл с всички акценти всеки ден, така че дори не е нужно да влизате на сървъра, за да проверявате за проблеми? Това ръководство ще ви покаже как да конфигурирате автоматизирани имейли за Linux и Windows.
Ние специално ще покриваме това за Ubuntu и Windows 8.1, като Gmail се използва като имейл сървър, от който се изпраща пощата. Ако имате друга версия на Linux или Windows, или предпочитате да използвате друга услуга за електронна поща, инструкциите тук трябва да бъдат лесно приспособими.
Автоматизирани имейли в Linux
Ще използваме два различни пакета, за да постигнем това, 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 в нашия скрипт и това ще ни подкани за парола, като по този начин ще победим целта на автоматизирането на целия процес..
Ако използвате споделен сървър и се притеснявате, че паролата ви се съхранява в обикновен текст и може да се чете от root, създайте Gmail акаунт или използвайте имейл сървър, който не изисква никакъв вид удостоверяване..
За да се уверите, че всичко е конфигурирано правилно, нека опитаме с тестово имейл:
$ echo "Тестване" | mail -s "Проверка за настройка на поща" [email protected]
"Тестване" ще бъде в основата на имейла и темата ще бъде "Тестване на настройката на пощата". Проверете имейла си, за да се уверите, че сте го получили..
Писане на скрипт за имейлите
Сега, когато можем да изпращаме имейли от командния ред, нека напишем скрипт, който ще ни изпрати основна информация за нашата система.
#! / Хамбар / Баш
# Проверете пространството на твърдия диск
echo "Място на твърдия диск:"> /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 -е
За имейли от 2:00 ч. Добавете:
0 2 * * * /home/geek/script.sh
Написахме цяла статия за crontab файлове, ако се нуждаете от повече помощ с тази част.
Автоматизирани имейли в Windows
Изпращането на имейли в командния ред е възможно чрез PowerShell, но установихме, че прилагането на тази функционалност е много по-лесно с приложения на трети страни, особено при използване на Gmail. SendEmail е безплатна програма за Windows, която прави интеграцията с Windows Task Scheduler и Gmail лесна. Кликнете върху връзката по-горе, за да изтеглите последното копие и се уверете, че сте взели поддържаната от TLS версия.
След като изтеглите SendEmail, извлечете пощенския файл и поставете съдържанието някъде, което можете да ги съхраните, докато планирате да изпращате автоматични имейли. В този пример ще запазим програмата в C: SendEmail
Нека изпробваме SendEmail, за да усетите бързо как работи. Отворете командния ред, като въведете cmd в менюто Старт или Пусни (Ctrl + R).
С отворения команден ред използвайте командата change directory, за да навигирате до мястото, където сте съхранили SendEmail файловете.
cd C: SendEmail
Сега можем да опитаме да изпратим тестово имейл със следната команда:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu потребителско име -xp парола -u "Тестова тема за имейл" -m "Това е тестово имейл."
Очевидно е, че заменете „username“ и „password“ с вашите идентификационни данни за сметката, преди да изпълните командата.
Ето какво прави командата по-горе:
Изпратете имейл
изпълнява програмата.
-е
- от адрес
-T
- на адрес
-с
- SMTP сървър
-Xu
- потребителско име за сметка
-XP
- парола за акаунта
-ф
- тема за електронна поща
-m
- основния текст на имейла
Проверете входящата си поща, за да се уверите, че сте получили тестовата електронна поща, и след това можем да преминем към писане на скрипт, който ще ни изпрати информация за сървъра.
Писане на скрипт за имейлите
За да извлечем максимума от нашия скрипт, ще го напишем за PowerShell. Отворете Windows PowerShell ISE, като напишете powershell_ise.exe в подкана за изпълнение (Ctrl + R).
От дясната страна на прозореца на PowerShell ISE можете да изброите всяка команда, която PowerShell може да изпълни. Това трябва да ви даде добър старт за генериране на видовете информация, която трябва да се докладва. Във вашия скрипт можете да извиквате и за програми на трети страни да извеждат информация (напр. SendEmail е приложение от трета страна, но PowerShell и cmd могат да го използват за изпълнение на задачи, които обикновено не могат).
За нашия примерен скрипт ще проверим текущото използване на диска на диска С, ще покажем текущите процеси и ще покажем всички файлове, които понастоящем се споделят в мрежата.
# Проверете пространството на твърдия диск
echo "C: Употреба на диск:"> C: SendEmail info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Размер на обекта, FreeSpace >> C: SendEmail info.txt
# Изброява текущите процеси
echo "Работещи процеси:" >> C: SendEmail info.txt
get-process >> C: SendEmail info.txt
# Списък на файловете / папките, които в момента се споделят
echo "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 потребителско име -xp парола -u "Ежедневна информация за сървъра"
# Изтрийте файла, който направихме
rm C: SendEmail info.txt
В този скрипт се извежда различна информация в C: SendEmail info.txt и след това текстът в този документ ни се изпраща по имейл, преди да бъде изтрит. Запазете скрипта си с разширение ps1 (файл PowerShell).
Когато скриптът приключи, изпълнете бърз тест от подкана за изпълнение, за да се уверите, че работи правилно.
Просто използвайте PowerShell
командата с a -досие
аргумент и посочете пътя към скрипта.
"c: Изпрати имейл \ t
Проверете входящата си поща, за да се уверите, че сте получили имейла - ако не, погледнете скрипта си за синтактични грешки. Ето как изглежда генерираният имейл от нашия примерен скрипт:
Можете да играете с форматирането (като ехото на празни редове между текста), за да го покажете по-хубаво на вашето устройство, или още по-добре да използвате програма на трета страна, която ще изведе необходимата информация в по-разбираем формат, отколкото Windows ( процесът на създаване на скриптове ще продължи да бъде същият).
След като разработите скрипта във вашия скрипт, можете да използвате Windows Task Scheduler, за да го автоматизирате. Отворете Windows Task Scheduler чрез менюто "Старт".
С отворен Планировчик на задачи изберете Действие> Създаване на основна задача.
Назовете тази задача нещо като „Ежедневен имейл скрипт“ и кликнете върху Следващ. На следващия екран изберете честотата, с която искате да се изпълнява електронният ви скрипт, вероятно ежедневно. След това изберете времето, в което искате скриптът да се изпълнява, и натиснете след това.
Сега трябва да сте в частта „Действие“ на съветника, да изберете „Стартиране на програма“ и да въведете същия текст, който въведохме в подканата за изпълнение, за да тествате нашия скрипт.
Натиснете „Напред“ и след това натиснете „Да“ в този прозорец:
Кликнете върху Край в последното меню и сте готови да планирате автоматичните си имейли.