If-Koubou

Cum se generează automat și se e-mail Statistici de calculator

Cum se generează automat și se e-mail Statistici de calculator (Cum să)

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, așadar instalați ambele cu următoarea comandă:

$ sudo apt-get instala ssmtp mailutils

Odată ce acestea sunt instalate, trebuie să efectuăm 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 posibil să ștergeți doar întregul text 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.

[email protected]

# 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.

[email protected]

# Setări SSL / TLS, necesare pentru Gmail și majoritatea altor servere de mail.

UseTLS = Da

UseSTARTTLS = Da

# Numele de utilizator și parola în contul dvs. Gmail.

AUTHUSER = utilizator

AuthPass = parola

# Permiteți abilitatea de a specifica o adresă diferită de cea de mai sus.

FromLineOverride = da

Când ați terminat de editat fișierul, veți dori să schimbați permisiunile, deoarece parola Gmail este stocată în text.

$ 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 în scriptul nostru și ne va cere să introducem 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 "Testarea" mail-uri "Testarea setării e-mailului" [email protected]

"Testarea" va fi în corpul e-mailului și subiectul va fi "Testarea 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 unității de disc

ecou "spațiu pe hard disk:"> /home/geek/email.txt

df -h >> /home/geek/email.txt

# Listează utilizatorii conectați

echo "Utilizatorii conectați în prezent:" >> /home/geek/email.txt

care >> /home/geek/email.txt

# Listați procesele care rulează în prezent

echo "Procese de rulare:" /home/geek/email.txt

ps -e >> /home/geek/email.txt

# Trimiteți e-mailul

cat /home/geek/email.txt mail-uri "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 un pic mai plăcută, dar 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-mailurile de la 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 atunci 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 compatibilă cu 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 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 linia de comandă deschisă, utilizați comanda de modificare a directorului pentru a naviga la locul în care ați stocat fișierele SendEmail.

CD-ul 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 -xp parola -u "Testare subiect 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:

Trimite email execută programul.

-f - de la adresa

-t - să se adreseze

-s - server SMTP

-xu - numele contului

-xp - parola contului

-u - Subiectul emailului

-m - textul corpului de e-mail

Verificați căsuța poștală 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, 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:"> C: \ SendEmail \ info.txt

Get-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: "" Selectați-Dimensiune obiect, FreeSpace >> C: \ SendEmail \ info.txt

# Listați procesele care rulează în prezent

echo "Procese de rulare:" >> C: \ SendEmail \ info.txt

primiți procesul >> C: \ SendEmail \ info.txt

# Listează fișierele / folderele care sunt în prezent distribuite

echo "acțiuni SMB:" >> C: \ SendEmail \ info.txt

get-smbshare >> C: \ Trimiteremail \ info.txt

# Trimiteți e-mailul

tastați C: \ SendEmail \ info.txt | C: \ Trimiteți e-mail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp parola -u "Informații zilnice despre server"

# Ștergeți fișierul pe care l-am făcut

rm C: \ SendEmail \ info.txt

În acest script, sunt trimise mai multe informații în C: \ SendEmail \ info.txt, iar apoi textul din acel 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.

Folosiți doar PowerShell comandă cu -fişier argument și specificați calea către scenariul dvs.

powershell -file "c: \ Trimiteți e-mail \ 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 din scenariul nostru de exemplu:

Puteți să redați formatarea (cum ar fi reluarea liniilor goale între text) pentru ca aceasta să fie mai bună pe dispozitiv sau mai bine să utilizați un program terță parte care va afișa informațiile necesare într-un format mai ușor de citit decât Windows ( procesul de scripting va continua să fie același).

Odată ce ați elaborat legătura î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 Acțiune> Creare 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ătorul și apoi pe Da pe această fereastră:

Faceți clic pe Finalizați din ultimul meniu și ați terminat să programați e-mailurile automate.