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