Važno je svakodnevno provjeravati različite zapisnič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 to obuhvatiti za Ubuntu i Windows 8.1, a Gmail se koristi kao poslužitelj e-pošte koji šalje poštu. Ako imate neku drugu verziju Linuxa ili Windows, ili radije upotrebljavate neku drugu uslugu e-pošte, upute ovdje trebaju biti lako prilagodljive.
Koristit ćemo dva različita paketa kako bismo to postigli, ssmtp i mailutils, tako da ih instalirate sa sljedećom naredbom:
$ sudo apt-get install ssmtp mailutils
Nakon što ih instalirate, moramo napraviti neke promjene u SSMTP konfiguracijskoj datoteci:
$ sudo vi /etc/ssmtp/ssmtp.conf
Uredite datoteku s ovim promjenama (možete li izbrisati sav tekst u datoteci i kopirati / zalijepiti te postavke, ako želite):
# Ova će adresa primiti e-poštu, stoga ovdje unesite svoju e-poštu ako ih želite primati.
# Navedite poslužitelj e-pošte ovdje (ostavite kao i ako koristite Gmail).
mailhub = smtp.gmail.com: 587
# Naziv domene koji će doći od pošte.
rewriteDomain = gmail.com
# Adresa e-pošte s koje bi trebale biti te 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 zaporka na Gmail račun.
AUTHUSER = ime
AuthPass = lozinku
# Omogućite mogućnost da navedete a iz različite adrese od gore navedenog.
FromLineOverride = yes
Kada dovršite uređivanje datoteke, trebat ćete promijeniti dopuštenja jer je vaša zaporka za Gmail spremljena u pravom tekstu.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Uvijek je sigurnije da se root vlasnik datoteke, ali onda bi trebali koristiti sudo naredbu u našoj skripti i to će nas potaknuti na lozinku, čime se poremeti svrha automatizacije cijelog procesa.
Ako upotrebljavate zajednički poslužitelj i zabrinuta je da se vaša zaporka pohranjuje u jasan tekst i može ga čitati korijen, izradite Gmailov račun ili koristite poslužitelj e-pošte koji na prvom mjestu ne zahtijeva nikakvu vrstu provjere autentičnosti.
Da bismo 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, a subjekt će biti "Testiranje postavki pošte". Provjerite svoju e-poštu kako biste bili sigurni da ste ga primili.
Sada kada možemo slati poruke e-pošte iz naredbenog retka, napišimo skriptu koja će nam poslati neke osnovne informacije o našem sustavu.
#! / Bin / bash
# Provjerite prostor na tvrdom disku
echo "Tvrdi disk prostor:"> /home/geek/email.txt
df-h >> /home/geek/email.txt
# Popis korisnika koji su prijavljeni
echo "Korisnici trenutno prijavljeni:" >> /home/geek/email.txt
koji >> /home/geek/email.txt
# Popis trenutno pokrenutih procesa
echo "Projekti koji se izvode:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
Pošalji slanje e-pošte
cat /home/geek/email.txt | mail -s "Dnevni poslužiteljski podaci" [email protected]
# Izbrišite datoteku koju smo stvorili
rm /home/geek/email.txt
Očito možete dobiti puno dublje sa svojim skriptom, pa čak i oblikovati nešto ljepše, 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 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-poruke s 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.
Slanje e-pošte na naredbenom retku moguće je putem usluge PowerShell, 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 je možete spremiti sve dok planirate poslati automatizirane e-poruke. U ovom primjeru spremit ćemo program u C: \ SendEmail
Isprobajte SendEmail da biste dobili brz osjećaj za to kako 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 pohranjivanja SendEmail datoteka.
cd C: \ SendEmail
Sada možemo pokušati poslati testnu e-poštu sa sljedećom naredbom:
sendEmail -f korisnič[email protected] -t [email protected] -s smtp.gmail.com:587 -xu korisničko ime -xp lozinka -u "Test subject e-pošte" -m "Ovo je e-mail testiranja."
Očito zamijenite "korisničko ime" i "lozinka" s vjerodajnicama računa prije izvršenja naredbe.
Evo što naredba gore zapravo radi:
Pošalji e-mail
izvršava program.
f
- od adrese
-t
- na adresu
-s
- 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 bili sigurni da ste primili testnu e-poštu, a možemo nastaviti pisati skriptu koja će nam poslati podatke o poslužitelju.
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).
S desne strane 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 trenutačno dijele preko mreže.
# Provjerite prostor na tvrdom disku
echo "C: Pogon Upotreba:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: '"| Odaberite veličinu objekta, FreeSpace >> C: \ SendEmail \ info.txt
# Popis trenutno pokrenutih procesa
echo "Projekti u tijeku:" >> C: \ SendEmail \ info.txt
dobiti proces >> C: \ SendEmail \ info.txt
# Popis datoteka / mapa koje se trenutno dijele
echo "SMB dionica:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
Pošalji slanje e-pošte
upišite C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f korisnič[email protected] -t [email protected] -s smtp.gmail.com:587 -xu korisničko ime -xp lozinka -u "Dnevni info poslužitelja"
# Izbrišite datoteku koju smo napravili
rm C: \ SendEmail \ info.txt
U ovoj skripti izdaju se različite informacije C: \ SendEmail \ info.txt, a tekst u tom dokumentu nam se e-poštom prima prije nego što se izbrisati. Spremite skriptu s ekstenzijom PS1 datoteke (PowerShell datoteka).
Kada se skripta završi, pokrenite brzu probnu verziju iz upita za pokretanje da biste bili sigurni da funkcionira ispravno.
Upotrijebite samo PowerShell
naredba s a -datoteka
argument i odredite put do skripte.
powerhell -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 što izgleda generirana e-adresa iz naše primjere skripte:
Možete se igrati oko oblikovanja (poput odzvanja praznih redaka između teksta) kako bi se prikazao na vašem uređaju, ili još bolje možete upotrijebiti program treće strane koji će emitirati potrebne informacije u čitljivijem formatu nego što to čini Windows ( proces skriptiranja i dalje će biti isti).
Nakon što 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> Create Basic Task.
Imenujte 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 Da u ovom prozoru:
Na posljednjem izborniku kliknite Završi i dovršite zakazivanje automatske e-pošte.