Este important să verificați zilnic diferite date și statistici de jurnal pe server, dar devine obositor. Nu ar fi frumos să primești un singur e-mail cu toate cele mai importante momente în fiecare zi, așa că nici măcar nu trebuie să intri pe server pentru a verifica problemele? Acest ghid vă va arăta cum să configurați e-mailurile automate pe Linux și Windows.
Vom acoperi în mod special acest lucru pentru Ubuntu și Windows 8.1, Gmail fiind utilizat ca server de e-mail de la care sunt trimise mesaje. Dacă aveți o altă versiune de Linux sau Windows sau preferați să utilizați un alt serviciu de e-mail, instrucțiunile de aici ar trebui să fie ușor de adaptat.
E-mailuri automate în Linux
Vom folosi două pachete diferite pentru a realiza acest lucru, ssmtp și mailutils, așa că instalați-le pe ambele cu următoarea comandă:
$ sudo apt-get install ssmtp mailutils
Odată ce acestea sunt instalate, trebuie să facem câteva modificări în fișierul de configurare SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
Editați fișierul cu aceste modificări (este sigur să ștergeți tot textul din fișier și să copiați / lipiți aceste setări, dacă doriți):
# Această adresă va primi e-mailurile, așa că introduceți propriul e-mail aici dacă doriți să le primiți.
# Specificați aici serverul de e-mail (lăsați așa dacă folosiți Gmail).
mailhub = smtp.gmail.com: 587
# Numele de domeniu din care va veni mailul.
rewriteDomain = gmail.com
# Adresa de e-mail de la care ar trebui să apară aceste e-mailuri.
# Setări SSL / TLS, necesare pentru Gmail și majoritatea celorlalte servere de e-mail.
UseTLS = Da
UseSTARTTLS = Da
# Numele de utilizator și parola pentru contul dvs. Gmail.
AuthUser = nume de utilizator
AuthPass = parolă
# Permiteți posibilitatea de a specifica o adresă diferită de cea de mai sus.
FromLineOverride = da
Când ați terminat editarea fișierului, veți dori să modificați permisiunile, deoarece parola Gmail este stocată în text simplu.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Este întotdeauna mai sigur să facem root proprietarul fișierului, dar atunci ar trebui să folosim comanda sudo din scriptul nostru și ne-ar solicita o parolă, învingând astfel scopul automatizării întregului proces.
Dacă utilizați un server partajat și sunteți îngrijorat de faptul că parola dvs. este stocată în text clar și poate fi citită de root, creați un cont Gmail aruncabil sau utilizați un server de e-mail care nu necesită niciun fel de autentificare.
Pentru a ne asigura că totul este configurat corect, să încercăm un e-mail de testare:
$ echo "Testare" | mail -s „Testarea configurării e-mailului” [email protected]
„Testarea” va fi în corpul e-mailului, iar subiectul va fi „Testarea configurării e-mailului”. Verificați-vă e-mailul pentru a vă asigura că l-ați primit.
Scrierea unui script pentru e-mailuri
Acum, că putem trimite e-mailuri din linia de comandă, să scriem un script care să ne trimită câteva informații de bază despre sistemul nostru.
#! / Bin / Bash
# Verificați spațiul pe hard disk
ecou „Spațiu pe hard disk:”> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Enumerați utilizatorii conectați
echo "Utilizatorii s-au conectat în prezent:" >> /home/geek/email.txt
cine >> /home/geek/email.txt
# Enumerați procesele care rulează în prezent
ecou „Procese de rulare:” >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Trimiteți e-mailul
cat /home/geek/email.txt | mail -s "Daily server information" [email protected]
# Ștergeți fișierul pe care l-am creat
rm /home/geek/email.txt
Evident, puteți obține mult mai în profunzime cu scriptul dvs. și chiar puteți face formatarea puțin mai frumoasă, dar așa arată rezultatul în e-mailul nostru:
Acum că scriptul este scris și testat, putem folosi cron pentru a-l executa automat la aceeași oră în fiecare zi. În acest exemplu, vom configura e-mailul pentru a fi trimis la 2:00 AM în fiecare dimineață, astfel încât să putem trece prin date mai târziu în acea zi.
$ crontab -e
Pentru e-mailurile de la 2:00 AM, adăugați:
0 2 * * * /home/geek/script.sh
Am scris un articol întreg despre fișiere crontab dacă aveți nevoie de mai mult ajutor cu această parte.
E-mailuri automate în Windows
Trimiterea e-mailurilor la linia de comandă este posibilă prin PowerShell, dar am constatat că implementarea acestei funcționalități este mult mai ușoară cu aplicațiile terță parte, mai ales atunci când se utilizează Gmail. Trimite email este un program gratuit disponibil pentru Windows care face integrarea cu Windows Task Scheduler și Gmail o briză. Faceți clic pe linkul de mai sus pentru a descărca cea mai recentă copie și asigurați-vă că ați luat versiunea acceptată de TLS.
După ce ați descărcat SendEmail, extrageți fișierul zip și puneți conținutul undeva pentru a le putea stoca atât timp cât intenționați să trimiteți e-mailuri automate. În acest exemplu, vom doar stoca programul în C: \ SendEmail
Să testăm SendEmail pentru a avea o idee rapidă despre cum funcționează. Deschideți un prompt de comandă tastând cmd în meniul Start sau Run (Ctrl + R).
Cu promptul de comandă deschis, utilizați comanda de modificare a directorului pentru a naviga până unde ați stocat fișierele SendEmail.
cd C:\SendEmail
Acum putem încerca să trimitem un e-mail de testare cu următoarea comandă:
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."
Evident, înlocuiți „numele de utilizator” și „parola” cu acreditările contului dvs. înainte de a executa comanda.
Iată ce face de fapt comanda de mai sus:
Trimite email
execută programul.
-f
- de la adresa
-t
- a se adresa
-s
- Server SMTP
-monedă
- numele contului
-xp
- parola contului
-u
- Subiectul emailului
-m
- textul corpului de e-mail
Verificați căsuța de e-mail pentru a vă asigura că ați primit e-mailul de testare și apoi putem trece la scrierea unui script care ne va trimite informații despre server.
Scrierea unui script pentru e-mailuri
Pentru a profita la maximum de scenariul nostru, îl vom scrie pentru PowerShell. Deschideți Windows PowerShell ISE tastând powershell_ise.exe într-un prompt Run (Ctrl + R).
În partea dreaptă a ferestrei PowerShell ISE, puteți lista fiecare comandă pe care PowerShell este capabilă să o execute. Acest lucru ar trebui să vă ofere un început bun în generarea tipurilor de informații pe care trebuie să le raportați. În scriptul dvs., puteți apela și la programe terțe pentru a genera informații (de exemplu, SendEmail este o aplicație terță parte, dar PowerShell și cmd o pot folosi pentru a îndeplini sarcini pe care în mod normal nu le pot).
Pentru exemplul nostru de script, vom verifica utilizarea curentă a discului unității C, vom arăta procesele care rulează în prezent și vom arăta toate fișierele care sunt distribuite în prezent în rețea.
# Verificați spațiul pe hard disk
ecou "C: Utilizare unitate:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Selectați dimensiunea obiectului, spațiu liber >> C: \ SendEmail \ info.txt
# Enumerați procesele care rulează în prezent
ecou „Procese de rulare:” >> C: \ SendEmail \ info.txt
get-process >> C: \ SendEmail \ info.txt
# Enumerați fișierele / folderele care sunt partajate în prezent
ecou "SMB parts:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
# Trimiteți e-mailul
tastați C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f nume [email protected] -t nume [email protected] -s smtp.gmail.com:587 -xu nume utilizator -xp parolă -u "Informații zilnice despre server"
# Ștergeți fișierul pe care l-am făcut
rm C: \ SendEmail \ info.txt
În acest script, diverse informații sunt trimise la C: \ SendEmail \ info.txt, iar apoi textul din documentul respectiv ne este trimis prin e-mail înainte de a fi șters. Salvați scriptul cu o extensie de fișier ps1 (fișier PowerShell).
După finalizarea scriptului, executați un test rapid de la un mesaj de executare pentru a vă asigura că funcționează corect.
Folosiți doar
puterea
comanda cu a
-fişier
argumentați și specificați calea către scriptul dvs.
powershell -file "c: \ SendEmail \ daily-email.ps1"
Verificați căsuța de e-mail pentru a vă asigura că ați primit e-mailul - dacă nu, căutați peste script pentru erori de sintaxă. Iată cum arată e-mailul generat din exemplul nostru de script:
Puteți juca cu formatarea (cum ar fi ecoul liniilor goale între text) pentru a-l afișa mai frumos pe dispozitivul dvs. sau, mai bine, puteți utiliza un program terță parte care va afișa informațiile necesare într-un format mai lizibil decât Windows ( procesul de scriptare va fi în continuare același).
După ce ați identificat problemele din script, puteți utiliza programul de activități Windows pentru a-l automatiza. Deschideți Programatorul de activități Windows prin meniul Start.
Cu Programatorul de activități deschis, selectați Acțiune> Creare activitate de bază.
Denumiți această sarcină de genul „Script de e-mail zilnic” și faceți clic pe următorul. În ecranul următor, selectați frecvența cu care doriți să ruleze scriptul dvs. de e-mail, probabil zilnic. Apoi, alegeți ora la care doriți să ruleze scriptul și accesați următoarea.
Acum ar trebui să vă aflați în partea „Acțiune” a vrăjitorului, selectați „Porniți un program” și introduceți același text pe care l-am introdus în promptul Rulare mai devreme pentru a testa scriptul nostru.
Apăsați următorul și apoi dați pe această fereastră:
Faceți clic pe Finalizare din ultimul meniu și ați terminat de programat e-mailurile automate.