Kako automatski generirati i e-mail računalne statistike
Važno je svakodnevno provjeravati različite podatke dnevnika i statistiku na poslužitelju, ali to postaje zamorno. Ne bi li bilo lijepo svaki dan primati jednu e-poruku sa svim istaknutim točkama, tako da ne trebate čak ni doći na poslužitelj kako biste provjerili ima li problema? Ovaj će vam vodič pokazati kako konfigurirati automatizirane poruke e-pošte na Linuxu i Windowsu.
To ćemo posebno obraditi za Ubuntu i Windows 8.1, a Gmail će se koristiti kao poslužitelj e-pošte s kojeg se šalje poruka e-pošte. Ako imate drugu verziju Linuxa ili Windowsa ili želite koristiti neku drugu uslugu e-pošte, upute bi trebale biti lako prilagodljive.
Automatizirane poruke e-pošte u Linuxu
Koristit ćemo dva različita paketa za postizanje ovog cilja, ssmtp i mailutils, stoga instalirajte obje naredbe sljedećom naredbom:
$ sudo apt-get instaliraj ssmtp mailutils
Kada se one instaliraju, moramo napraviti neke promjene u konfiguracijskoj datoteci SSMTP:
$ sudo vi /etc/ssmtp/ssmtp.conf
Uredite datoteku s tim promjenama (možete jednostavno izbrisati sav tekst u datoteci i kopirati / zalijepiti te postavke, ako želite):
# Ova adresa će primiti e-poštu, stoga ovdje unesite vlastitu e-poštu ako ih želite primati.
# Ovdje navedite poslužitelj e-pošte (ostavite kao što je ako koristite Gmail).
mailhub = smtp.gmail.com: 587
# Naziv domene iz koje će poruka biti poslana.
rewriteDomain = gmail.com
# Adresa e-pošte s koje bi te poruke trebale biti.
# SSL / TLS postavke potrebne za Gmail i većinu drugih poslužitelja e-pošte.
UseTLS = Da
UseSTARTTLS = Da
# Korisničko ime i zaporka za vaš Gmail račun.
AUTHUSER = ime
AuthPass = lozinku
# Dopusti mogućnost određivanja adrese različitoj od gore navedene.
FromLineOverride = yes
Kada završite s uređivanjem datoteke, htjet ćete promijeniti dozvole jer je vaša zaporka za Gmail pohranjena u čistom tekstu.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Uvijek je sigurnije napraviti root datoteku vlasniku, ali onda bismo morali koristiti naredbu sudo u našoj skripti i to bi nas potaknulo na lozinku, čime bi se pobijedila svrha automatizacije cijelog procesa.
Ako upotrebljavate zajednički poslužitelj i brinete da će se lozinka pohraniti u čistom tekstu i čitati pomoću korijena, izradite Gmail račun za pokretanje ili upotrijebite poslužitelj e-pošte koji ne zahtijeva nikakvu provjeru autentičnosti.
Da bismo provjerili je li sve ispravno konfigurirano, pokušajmo s probnom e-poštom:
$ echo "Testiranje" | mail -s "Testiranje postave pošte" [email protected]
"Testiranje" će biti u tijelu poruke e-pošte, a predmet će biti "Testiranje postavljanja pošte". Provjerite svoju e-poštu da biste provjerili jeste li je primili.
Pisanje skripte za poruke e-pošte
Sada kada možemo poslati e-poštu iz komandne linije, napišite skriptu koja će nam poslati neke osnovne informacije o našem sustavu.
#! / Bin / bash
# Provjerite prostor na tvrdom disku
echo "Prostor tvrdog diska:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Navedite korisnike koji su prijavljeni
echo "Korisnici koji su trenutno prijavljeni:" >> /home/geek/email.txt
tko >> /home/geek/email.txt
# Popis trenutno pokrenutih procesa
echo "Pokrenuti procesi:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Pošaljite poruku e-pošte
cat /home/geek/email.txt | mail -s "Dnevne informacije o poslužitelju" [email protected]
# Izbrišite datoteku koju smo stvorili
rm /home/geek/email.txt
Očito možete dobiti puno više dubine sa svojom skriptom, pa čak i učiniti oblikovanje nešto ljepšim, ali to je ono što izlaz izgleda u našoj e-pošti:
Sada kada je skripta napisana i testirana, možemo koristiti cron da je automatski izvršavamo u isto vrijeme svaki dan. U ovom primjeru, konfigurirat ćemo e-poštu za slanje u 14:00 svakog jutra, kako bismo mogli pregledati podatke kasnije tog dana.
$ crontab -e
Za e-poštu u 2:00 dodajte:
0 2 * * * /home/geek/script.sh
Napisali smo cijeli članak o crontab datotekama ako trebate više pomoći s ovim dijelom.
Automatizirane poruke e-pošte u sustavu Windows
Slanje e-pošte putem naredbenog retka moguće je putem programa PowerShell, ali smo otkrili da je implementacija ove funkcije mnogo lakša s aplikacijama trećih strana, posebno kada se koristi Gmail. SendEmail je besplatan program dostupan za Windows koji olakšava integraciju s Windows Task Scheduler i Gmail. Kliknite gornju vezu da biste preuzeli najnoviju kopiju i provjerite jeste li preuzeli verziju koju podržava TLS.
Nakon što preuzmete SendEmail, izdvojite zip datoteku i stavite sadržaj negdje gdje ih možete pohraniti sve dok planirate slati automatizirane poruke e-pošte. U ovom primjeru samo ćemo pohraniti program u C: SendEmail
Testiramo SendEmail da bismo dobili brz osjećaj kako funkcionira. Otvorite naredbeni redak tako da upišete cmd u izbornik Start ili Run (Ctrl + R).
Otvorite naredbeni redak pomoću naredbe promjene direktorija za navigaciju do mjesta na kojem 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 -xp lozinka -u "Testni predmet e-pošte" -m "Ovo je testna e-pošta."
Očito, prije izvođenja naredbe, "username" i "password" zamijenite vjerodajnicama računa.
Evo što zapravo čini gore navedena naredba:
Pošalji e-mail
izvršava program.
-f
- s adrese
-t
- na adresu
-a
- SMTP poslužitelj
-Xu
- korisničko ime računa
-XP
- lozinka računa
-u
- predmet e-pošte
-m
- tekst tijela e-pošte
Provjerite pristiglu poštu kako biste provjerili jeste li primili testnu e-poštu, a zatim možemo napisati skriptu koja će nam poslati informacije o poslužitelju.
Pisanje skripte za poruke e-pošte
Da bismo maksimalno iskoristili našu skriptu, napisat ćemo je za PowerShell. Otvorite Windows PowerShell ISE tako da upišete powershell_ise.exe u Run prompt (Ctrl + R).
S desne strane prozora PowerShell ISE možete navesti sve naredbe koje PowerShell može izvršiti. To će vam dati dobar početak u generiranju vrsta informacija koje su vam potrebne. U vašoj skripti možete pozvati i programe trećih strana za izlaz informacija (npr. SendEmail je aplikacija treće strane, ali PowerShell i cmd mogu ga koristiti za izvršavanje zadataka koje inače ne mogu).
U našem primjeru skripte provjerit ćemo trenutnu upotrebu diska C na disku, prikazati trenutačno pokrenute procese i prikazati sve datoteke koje se trenutačno dijele putem mreže.
# Provjerite prostor na tvrdom disku
echo "C: Upotreba pogona:"> C: SendEmail info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Veličina odabranog objekta, FreeSpace >> C: SendEmail info.txt
# Popis trenutno pokrenutih procesa
echo "Pokretanje procesa:" >> C: SendEmail info.txt
get-process >> C: SendEmail info.txt
# Navedite datoteke / mape koje se trenutno dijele
echo "SMB dionice:" >> C: SendEmail info.txt
get-smbshare >> C: SendEmail info.txt
# Pošaljite poruku e-pošte
tip C: SendEmail info.txt | C: SendEmail sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu korisničko ime -xp lozinka -u "Dnevni podaci o poslužitelju"
# Izbrišite datoteku koju smo napravili
rm C: SendEmail info.txt
U ovoj skripti razne se informacije šalju u C: SendEmail info.txt, a zatim nam se tekst u tom dokumentu šalje e-poštom prije brisanja. Spremite svoju skriptu s ekstenzijom datoteke ps1 (datoteka PowerShell).
Dok je skripta dovršena, pokrenite brzi test iz prompta za pokretanje kako biste bili sigurni da ispravno radi.
Samo upotrijebite PowerShell
naredbu s -datoteka
argument i odredite putanju do skripte.
powerhell -file "c: SendEmail \ t
Provjerite pristiglu poštu kako biste provjerili jeste li primili poruku e-pošte - ako ne, potražite skriptu za pogreške u sintaksi. Evo kako izgleda generirana e-pošta iz naše skripte primjera:
Možete se igrati s oblikovanjem (kao što je ponavljanje praznih redova između teksta) kako biste ga prikazali ljepšim na vašem uređaju, ili još bolje, možete koristiti program treće strane koji će prikazivati potrebne informacije u čitljivijem formatu nego što to čini Windows ( proces skriptiranja i dalje će biti isti).
Nakon što razradite kinkove u svojoj skripti, za automatizaciju možete koristiti Windows Task Scheduler. Otvorite Windows Task Scheduler putem izbornika Start.
Kada je planer zadataka otvoren, odaberite Akcija> Stvori osnovni zadatak.
Imenujte ovaj zadatak kao što je "Dnevna e-mail skripta" i kliknite sljedeći. Na sljedećem zaslonu odaberite učestalost kojom želite da se pokreće skripta e-pošte, vjerojatno svakodnevno. Zatim odaberite vrijeme kada želite da se skripta pokrene i pritisnite sljedeći.
Sada biste trebali biti u dijelu "Akcije" čarobnjaka, odaberite "Pokreni program" i unesite isti tekst koji smo ranije unijeli u Run prompt da biste testirali našu skriptu.
Pritisnite sljedeći i zatim pritisnite Yes u ovom prozoru:
Kliknite Završi na posljednjem izborniku i završili ste s zakazivanjem automatskih poruka e-pošte.