Важно е всеки ден да проверявате различни данни от дневници и статистически данни на сървъра си, но това става доста досадно. Не би ли било хубаво да получавате един имейл с всички акценти всеки ден, така че дори не е нужно да се качвате на сървъра, за да проверите за проблеми? Това ръководство ще ви покаже как да конфигурирате автоматизирани имейли на Linux и Windows.
Ще обръщаме специално внимание на това за Ubuntu и Windows 8.1, като Gmail ще се използва като пощенски сървър, от който се изпраща пощата. Ако имате друга версия на Linux или Windows или предпочитате да използвате друга услуга за електронна поща, инструкциите тук трябва лесно да се приспособят.
Ще използваме два различни пакета, за да постигнем това, ssmtp и mailutils, така че инсталирайте и двете от тях със следната команда:
$ sudo apt-get инсталирате 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
# Списък на текущите процеси
ехо "Процеси на изпълнение:" /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Изпратете имейла
котка /home/geek/email.txt поща "Дневната информация за сървъра" [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 Scheduler Task Scheduler и Gmail лек. Кликнете върху връзката по-горе, за да изтеглите последното копие и се уверете, че сте грабнали версията, поддържана от TLS.
След като изтеглите SendEmail, извадете zip файла и поставете съдържанието някъде така, че да можете да ги съхранявате толкова дълго, колкото планирате да изпращате автоматизирани имейли. В този пример ние просто ще съхраняваме програмата в C: \ SendEmail
Нека да тестваме SendEmail, за да можем бързо да разберем как работи. Отворете командния ред, като въведете cmd в менюто Старт или Изпълнение (Ctrl + R).
Когато командният ред е отворен, използвайте командата за промяна на директория, за да отидете до мястото, където сте съхранили файловете SendEmail.
C: \ SendEmail
Сега можем да опитаме да изпратим тестов имейл със следната команда:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu потребителско име -xp парола -u "Тест на тема за електронна поща" -m "Това е тестов имейл."
Очевидно заменете "потребителско име" и "парола" с идентификационните данни на профила си, преди да изпълните командата.
Ето какво всъщност прави командата по-горе:
Изпратете имейл
изпълнява програмата.
-f
- от адрес
-T
- на адрес
-с
- SMTP сървър
-xu
- потребителско име за профила
-xp
- парола за акаунта
-u
- тема на имейла
-м
текст на текста на електронната поща
Проверете входящата си поща, за да сте сигурни, че сте получили тестовия имейл, и след това може да преминете към написването на скрипт, който ще ни изпрати информация за сървъра.
За да извлечете максимума от нашия скрипт, ще го напишем за PowerShell. Отворете Windows PowerShell ISE, като въведете powershell_ise.exe в подкана за изпълнение (Ctrl + R).
От дясната страна на прозореца PowerShell ISE можете да изброите всяка команда, която PowerShell може да изпълни. Това трябва да ви даде добър старт за генерирането на видовете информация, която ви е необходима. В скрипта можете също да се обаждате на програми на трети страни, за да извеждате информация и (т.е. SendEmail е приложение на трета страна, но PowerShell и cmd могат да я използват, за да изпълняват задачите, които нормално не могат).
За примерния ни скрипт ще проверим текущото използване на диска на C устройството, ще покажем процесите, които в момента се изпълняват и ще покажем всички файлове, които понастоящем се споделят в мрежата.
# Проверете пространството на твърдия диск
echo "C: Използване на устройство:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Филтър "DeviceID =" C: "" | Изберете размер на обекта, FreeSpace >> C: \ SendEmail \ info.txt
# Списък на текущите процеси
ехо "Процеси на изпълнение:" >> C: \ SendEmail \ info.txt
процес >> 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
команда с -file
аргумент и да посочите пътя към вашия скрипт.
powershell - файл "c: \ SendEmail \ daily-email.ps1"
Проверете входящата си поща, за да се уверите, че сте получили имейла - ако не, потърсете скрипта за грешки при синтаксиса. Ето как изглежда генерираният имейл от нашия примерен скрипт:
Можете да играете навсякъде с форматирането (като отразяване на празни линии между текста), за да стане по-хубаво на устройството ви, но все пак можете да използвате програма на трета страна, която ще изведе необходимата информация в по-четлив формат от Windows ( процесът на скриптове ще продължи да бъде същият).
След като сте изработили скиците в скрипта си, можете да използвате Windows Task Scheduler, за да го автоматизирате. Отворете Windows Task Scheduler през менюто "Старт".
С отвореното работно планиране на задачите изберете Действие> Създаване на основна задача.
Наименувайте тази задача като "Daily email script" и щракнете върху следващия. На следващия екран, изберете честотата, с която искате да се изпълнява скриптът Ви за емайл, вероятно ежедневно. След това изберете часа, в който искате да се изпълни скрипта, и натиснете следващия.
Сега трябва да сте в частта "Действие" на съветника, да изберете "Стартиране на програма" и да въведете същия текст, който въведохме в подкана за изпълнение, за да тествате скрипта.
Натиснете Next и след това натиснете Yes в този прозорец:
Кликнете върху Завършване в последното меню и сте готови да насрочите автоматично имейлите си.