11Jul

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

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.

[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. Setările

[email protected]

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