11Jul

Kako automatski generirati i e-mail računalne statistike

Svakog dana važno je provjeriti razne dnevničke podatke i statističke podatke na vašem poslužitelju, ali svejedno postaje dosadan. Ne bi li bilo drago primiti pojedinačnu e-poštu sa svim naglašavanjima svakog dana, tako da čak i ne morate dobiti poslužitelj da biste provjerili ima li problema? Ovaj vodič će vam pokazati kako konfigurirati automatizirane poruke e-pošte na Linuxu i Windowsu.

Posebno ćemo ovo obuhvatiti za Ubuntu i Windows 8.1, a Gmail se koristi kao poslužitelj e-pošte s kojeg je poslana pošta. Ako imate neku drugu verziju Linuxa ili Windows, ili radije upotrebljavate neku drugu uslugu e-pošte, upute ovdje trebaju biti lako prilagodljive.

Automatizirana e-pošta u Linuxu

Koristit ćemo dva različita paketa za postizanje ove, ssmtp i mailutile, tako da ih instalirate sa sljedećom naredbom:

$ sudo apt-get instalirajte ssmtp mailutils

Kada su one instalirane, trebamoizvršiti neke promjene u SSMTP konfiguracijskoj datoteci:

$ sudo vi /etc/ssmtp/ ssmtp.conf

Uredite datoteku s ovim promjenama( možete li izbrisati sve tekstove u datoteci i kopirati / zalijepiti te postavke, ako želite):

# Ova adresa će primiti e-poštu, stoga ovdje unesite svoju e-poštu ako ih želite primati.

[email protected]

# Odredite poslužitelj e-pošte ovdje( ostavite kao i ako koristite Gmail).

mailhub = smtp.gmail.com: 587

# Naziv domene iz koje dolazi pošta.

rewriteDomain = gmail.com

# Adresa e-pošte koju trebaju imati ove e-poruke.

[email protected]

# SSL / TLS postavke, potrebne za Gmail i većinu drugih poslužitelja e-pošte.

UseTLS = Da

UseSTARTTLS = Da

# Korisničko ime i lozinka na Gmail računu.

AuthUser = korisničko ime

AuthPass = lozinka

# Dopustite mogućnost da navedete a iz druge adrese od gore navedenog.

FromLineOverride = yes

Kada završite s uređivanjem datoteke, želite promijeniti dopuštenja jer je vaša Gmail zaporka pohranjena u tekstualnom obliku.

$ sudo chmod 640 /etc/ssmtp/ ssmtp.conf

$ sudo chown korisničko ime.username /etc/ssmtp/ ssmtp.conf

Uvijek je sigurnije da korijeni vlasnik datoteke, ali onda bi trebali koristiti sudo naredbu u našem scenariju i to bipotaknuti nas na lozinku i time pobijediti svrhu automatizacije cijelog procesa.

Ako upotrebljavate zajednički poslužitelj i zabrinut je da se vaša zaporka pohranjuje u jasan tekst i može ga čitati root, izradite Gmailov račun ili koristite poslužitelj e-pošte koji na prvom mjestu ne zahtijeva nikakvu vrstu provjere autentičnosti.

Da biste bili sigurni da je sve ispravno konfigurirano, pokušajte probnu e-poštu:

$ echo "Testiranje" |mail -s "Testiranje postavki pošte" [email protected]

"Testiranje" bit će u tijelu e-pošte i predmet će biti "Testiranje postavki pošte". Provjerite svoju e-poštu kako biste bili sigurni da ste ga primili.

Pisanje skripte za poruke e-pošte

Sada kada možemo slati poruke e-pošte iz naredbenog retka, napisati skriptu koja će nam poslati neke osnovne informacije o našem sustavu.

#!/bin/ bash

# Provjerite prostor na tvrdom disku

echo "Prostor na tvrdom disku:" & gt;/home/geek/ email.txt

df-h & gt; & gt;/home/geek/ email.txt

# Popis korisnika koji su prijavljeni

echo "Korisnici trenutačno prijavljeni:" & gt; & gt;/home/geek/ email.txt

koji je & gt; & gt;/home/geek/ email.txt

# Popis trenutno pokrenutih procesa

echo "Projekti u tijeku:" & gt; & gt;/home/geek/ email.txt

ps -e & gt; & gt;/home/geek/ email.txt

# Pošalji e-mail

mačka /home/geek/ email.txt |mail -s "Dnevni poslužiteljski podaci" [email protected]

# Obrišite datoteku koju smo stvorili

rm /home/geek/ email.txt

Očito možete dobiti puno dublje s vašom skriptom, pa čak i oblikovati nešto ljepše, aliovo je ono što izlaz izgleda u našoj e-pošti:

Sada kada je skripta napisana i testirana, možemo koristiti cron da ga automatski izvršimo u isto vrijeme svaki dan. U ovom primjeru konfigurirat ćemo e-poštu koja će se poslati svako jutro u 2:00 ujutro, tako da možemo kasnije proslijediti podatke.

$ crontab -e

Za e-poštu 2:00 AM dodajte:

0 2 * * * /home/geek/ script.sh

Napisali smo cijeli članak o crontab datotekama ako vam je potrebna dodatna pomoć u ovom dijelu.

Automatizirana e-pošta u sustavu Windows

Slanje e-pošte na naredbeni red je moguće putem PowerShell-a, no utvrdili smo da je implementacija ove funkcije puno jednostavnija s aplikacijama treće strane, posebno kada koristite Gmail. SendEmail je besplatan program dostupan za sustav Windows koji čini integraciju sa sustavom Windows Task Scheduler i Gmail povjetarac. Kliknite gornju vezu da biste preuzeli najnoviju kopiju i pobrinite se za pronalaženje TLS podržane inačice.

Nakon što preuzmete SendEmail, izvadite zip datoteku i stavite sadržaj negdje gdje ga možete pohraniti sve dok planirate poslati automatizirane e-poruke. U ovom primjeru spremit ćemo program u C: \ SendEmail

Ispitajmo SendEmail kako bismo brzo dobili osjećaj kako to funkcionira. Otvorite naredbeni redak upisivanjem cmd u izbornik Start ili Run( Ctrl + R).

Kada otvorite naredbeni redak, koristite naredbu za promjenu direktorija za kretanje do mjesta gdje ste pohranili SendEmail datoteke.

cd C: \ SendEmail

Sada možemo pokušati poslati testnu e-poštu sa sljedećom naredbom:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu korisničko ime -xplozinka -u "Test subject e-pošte" -m "Ovo je e-pošta za testiranje."

Očito zamijenite "korisničko ime" i "lozinka" s vjerodajnicama računa prije izvršenja naredbe.

Evo što gore navedena naredba zapravo čini:

sendEmail izvršava program.

-f - od adrese

-t - na adresu

-s - SMTP poslužitelj

-xu - korisničko ime korisničkog računa

-xp - zaporka računa

-u - tema e-pošte

-m - tekst tijela e-pošte

Provjerite ulaznu poštu kako biste bili sigurniprimili ste e-poštu za testiranje, a zatim možemo nastaviti pisati skriptu koja će nam poslati podatke o poslužitelju.

Pisanje skripte za poruke e-pošte

Da bismo iskoristili sve iz naše skripte, napisat ćemo ga za PowerShell. Otvorite Windows PowerShell ISE upisivanjem powershell_ise.exe u pokretanje brzog( Ctrl + R).

Na desnoj strani prozora PowerShell ISE možete navesti sve naredbe koje PowerShell može izvršiti. To bi vam trebalo dati dobar početak pri generiranju vrsta informacija koje trebate prijaviti. U svojoj skripti također možete pozvati programe treće strane za izlazne informacije( npr. SendEmail je aplikacija treće strane, ali PowerShell i cmd mogu ga koristiti za obavljanje zadataka koje inače ne mogu).

Za našu primjernu skriptu provjerit ćemo trenutnu upotrebu diska C pogona, prikazati trenutno pokrenute procese i prikazati sve datoteke koje se trenutno dijele preko mreže.

# Provjerite prostor na tvrdom disku

echo "C: Uporaba pogona:" & gt;C: \ SendEmail \ info.txt

Get-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: '"|Odabir veličine objekta, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt

# Popis trenutno pokrenutih procesa

echo "Projekti u tijeku:" & gt; & gt;C: \ SendEmail \ info.txt

get-proces & gt; & gt;C: \ SendEmail \ info.txt

# Popis datoteka / mapa koje se trenutno dijele

echo "SMB dionica:" & gt; & gt;C: \ SendEmail \ info.txt

get-smbshare & gt; & gt;C: \ SendEmail \ info.txt

# Pošaljite e-mail

tip C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f korisnič[email protected] -t [email protected] -s smtp.gmail.com:587 -xu korisničko ime -xp password -u "Dnevni poslužiteljski podaci"

# Obrišite datoteku koju smo napravili

rm C: \ SendEmail \ info.txt

U ovoj skripti izdaju se različite informacije na C: \ SendEmail \ info.txt, a tekst u tom dokumentu nam se e-poštom šalje prije nego što se izbrisemo. Spremite skriptu s ekstenzijom PS1 datoteke( PowerShell datoteka).

Nakon završetka skripte, pokrenite brzu probnu verziju iz upita za pokretanje da biste bili sigurni da funkcionira ispravno.

Jednostavno upotrijebite commandhehell naredbu s argumentom -file i odredite put do skripte.

powershell -file "c: \ SendEmail \ daily-email.ps1"

Provjerite pristiglu poštu kako biste bili sigurni da ste primili poruku e-pošte - ako ne, pregledajte skriptu za pogreške sintakse. Evo kako izgleda generirana e-adresa iz našeg primjernog skripte:

Možete se igrati oko oblikovanja( kao što je odjekuje prazne linije između teksta) kako bi se prikazao na vašem uređaju, ili još bolje možete upotrijebiti program treće strane koji ćeispišite potrebne podatke u čitljivijem formatu nego Windows( proces skriptiranja i dalje će biti isti).

Kada izradite kinks u svojoj skripti, možete ga koristiti za automatizaciju Windows Task Scheduler. Otvorite Task Scheduler sustava Windows putem izbornika Start.

Dok je Task Scheduler otvoren, odaberite Action & gt;Stvorite osnovnu zadaću.

Nazovite ovaj zadatak poput "Dnevne skripte e-pošte" i kliknite sljedeći. Na sljedećem zaslonu odaberite učestalost kojom želite pokrenuti skriptu e-pošte, vjerojatno svakodnevno. Zatim odaberite vrijeme kada želite da se skripta pokrene i pritisne sljedeći.

Sada biste trebali biti na dijelu "Akcija" čarobnjaka, odaberite "Pokreni program" i unesite isti tekst koji smo ranije unijeli u program Run da bismo testirali našu skriptu.

Pritisnite sljedeći, a zatim pritisnite Yes( Da) u ovom prozoru:

Kliknite Završi na posljednjem izborniku i završili ste s raspoređivanjem automatske e-pošte.