11Jul
Este important să verificați diverse date și statistici de jurnal pe serverul dvs. în fiecare zi, dar devine plictisitor. Nu ar fi frumos să primiți un singur e-mail cu toate evidențierile zilnice, astfel încât nici măcar nu trebuie să ajungeți pe server pentru a verifica problemele? Acest ghid vă va arăta cum să configurați e-mailurile automatizate pe Linux și Windows.
Vom acoperi în mod specific acest lucru pentru Ubuntu și Windows 8.1, Gmail fiind folosit ca server de e-mail de la care este trimis e-mailul. 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 adaptabil.
E-mailuri automate în Linux
Vom folosi două pachete diferite pentru a realiza acest lucru, ssmtp și mailutils, deci instalați ambele cu următoarea comandă:
$ sudo apt-get install ssmtp mailutils
Odată instalate, avem nevoie depentru a face unele 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 doar textul din fișier și să copiați / inserați aceste setări, dacă doriți):
# Această adresă va primi e-mailurile, prin urmare introduceți propriul e-mail aici dacă doriți să le primiți.
# Specificați serverul de e-mail aici( lăsați ca și cum ați utiliza Gmail).
mailhub = smtp.gmail.com: 587
# Numele domeniului de la care va veni poșta.
rewriteDomain = gmail.com
# Adresa de e-mail la care ar trebui să fie aceste e-mailuri. Setările
# SSL / TLS, necesare pentru Gmail și cele mai multe servere de mail.
UseTLS = Da
UtilizațiSTARTTLS = Da
# Numele de utilizator și parola în contul Gmail.
AuthUser = nume de utilizator
AuthPass = parola
# Permite abilitatea de a specifica o adresă diferită de cea de mai sus.
FromLineOverride = da
După ce ați terminat de editat fișierul, veți dori să schimbați permisiunile, deoarece parola Gmail este stocată în text plain.
$ sudo chmod 640 /etc/ssmtp/ ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ ssmtp.conf
Este întotdeauna mult mai sigur să facem root proprietarul fișierului, dar atunci ar trebui să folosim comanda sudo în scenariul nostru și ar fisă ne solicităm o parolă, învingându-ne 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 simplu și ușor de citit de către root, creați un cont Gmail de tip throwaway sau utilizați un server de e-mail care nu necesită niciun fel de autentificare în primul rând.
Pentru a vă asigura că totul este configurat corect, să încercăm un e-mail de test:
$ echo "Testing" |mail-uri "Testarea configurației poștei" [email protected]
"Testare" va fi în corpul e-mail-ului și subiectul va fi "Testarea setă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ă suntem capabili să trimitem e-mailuri din linia de comandă, să scriem un script care ne va trimite câteva informații de bază despre sistemul nostru.
#!/bin/ bash
# Verificați spațiul pe hard disk
ecou "Spațiu hard disk:" & gt;/home/geek/ email.txt
df -h & gt; & gt;/home/geek/ email.txt
# Lista utilizatorilor conectați la
echo "Utilizatorii conectați în prezent:" & gt; & gt;/home/geek/ email.txt
care & gt; & gt;/home/geek/ email.txt
# Lista proceselor care rulează în prezent
echo "Procese de rulare:" & gt; & gt;/home/geek/ email.txt
ps -e & gt; & gt;/home/geek/ email.txt
# Trimite e-mail
cat /home/geek/ email.txt |mail -s "Informații zilnice despre server" [email protected]
# Ștergeți fișierul pe care l-am creat
rm /home/geek/ email.txt
Evident, puteți obține mult mai mult în profunzime cu scenariul dvs. și chiar faceți formatarea puțin mai frumoasă,acesta este aspectul de ieșire din e-mailul nostru:
Acum că scriptul este scris și testat, putem folosi cronul pentru a executa automat în același timp în fiecare zi.În acest exemplu, vom configura adresa de e-mail care va fi trimisă în 2:00 AM în fiecare dimineață, astfel încât să putem trece prin datele mai târziu în acea zi.
$ crontab -e
Pentru e-mailuri 2:00 AM, adăugați:
0 2 * * * /home/geek/ script.sh
Am scris un întreg articol despre fișierele crontab dacă aveți nevoie de mai mult ajutor pentru 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 când se utilizează Gmail. SendEmail este un program gratuit disponibil pentru Windows, care face integrarea cu Windows Task Scheduler și Gmail un breeze. Faceți clic pe link-ul de mai sus pentru a descărca cea mai recentă copie și asigurați-vă că ați luat versiunea acceptată de TLS.
Odată ce ați descărcat SendEmail, extrageți fișierul zip și puneți conținutul undeva pe care îl puteți stoca atât timp cât intenționați să trimiteți e-mailuri automate.În acest exemplu, vom stoca doar programul în C: \ SendEmail
Să testați SendEmail pentru a vă simți rapid 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 la locul în care ați stocat fișierele SendEmail.
cd C: \ SendEmail
Acum putem încerca să trimitem un e-mail de test cu următoarea comandă:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xpparola -u "Testare subiect de e-mail" -m "Acesta este un e-mail de test."
Evident, înlocuiți "username" și "password" cu acreditările contului înainte de a executa comanda.
Iată ce face de fapt comanda de mai sus:
sendEmail execută programul.
-f - de la adresa
-t - la adresa
-s - server SMTP
-xu - numele de utilizator al contului
-xp - parola cont
-u - subiect de e-mail
-m - textul textului e-mail
Verificați-vă căsuța poștală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, o 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 să listați 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 de care aveți nevoie.În scriptul dvs. puteți de asemenea să apelați la programe terță parte pentru a trimite și informații( adică SendEmail este o aplicație terță parte, dar PowerShell și cmd îl pot folosi pentru a îndeplini sarcinile pe care nu le pot folosi în mod normal).
Pentru scriptul nostru de exemplu, vom verifica utilizarea curentă a discului de pe unitatea C, vom arăta procesele care rulează în prezent și vom afișa toate fișierele care sunt în prezent distribuite în rețea.
# Verificați spațiul unității de disc
echo "C: Utilizare unitate:" & gt;C: \ Trimitere_mail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:' '|Selectați-Object Size, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt
# Lista proceselor care rulează în prezent
echo "Running processes:" & gt; & gt;C: \ SendEmail \ info.txt
primi-proces & gt; & gt;C: \ SendEmail \ info.txt
# Lista fișierelor / dosarelor care sunt în prezent partajate
echo "Shares SMB:" & gt; & gt;C: \ Trimiteremail \ info.txt
get-smbshare & gt; & gt;C: \ SendEmail \ info.txt
# Trimiteți e-mailul
tip C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp parola -u "Informatii server zilnic"
# Stergeti fisierul pe care l-am facut
rm C: \ SendEmail \ info.txt
În acest script, sunt trimise mai multe informații în C: \ SendEmail \ info.txt și apoi textul din acest document este trimis prin e-mail către noi înainte de a fi șters. Salvați scriptul cu o extensie de fișier ps1( fișier PowerShell).
Cu script-ul terminat, executați un test rapid de la un prompt de execuție pentru a vă asigura că funcționează corect.
Utilizați doar comanda powerhell cu un argument -file ș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, examinați scriptul pentru erori de sintaxă.Iată ce arată e-mailul generat de scenariul nostru de exemplu:
Puteți să jucați cu formatarea( cum ar fi reluarea liniilor goale între text) pentru a face afișarea mai bună pe aparat sau, mai bine, puteți utiliza un program de terță partefurnizați informațiile necesare într-un format mai ușor de citit decât Windows( procesul de scripting va fi în continuare același).
Odată ce ați elaborat versurile în scriptul dvs., puteți utiliza Windows Task Scheduler pentru a-l automatiza. Deschideți Scheduler de activități Windows prin meniul Start.
Cu Task Scheduler deschis, selectați Action & gt;Creați o sarcină de bază.
Denumiți această sarcină ceva 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 ca scriptul dvs. de e-mail să fie difuzat, probabil zilnic. Apoi, alegeți ora la care doriți să se execute scriptul și apăsați următorul.
Acum ar trebui să participați la partea "Acțiune" a expertului, selectați "Porniți un program" și introduceți același text pe care l-am introdus în promptul de execuție mai devreme pentru a testa scriptul nostru.
Apăsați pe următoarea și apoi apăsați Da în această fereastră:
Faceți clic pe Finish( Finalizare) din ultimul meniu și ați terminat să vă planificați e-mailurile automate.