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.
Automatizirane e-poruke u Linuxu
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):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=smtp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
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 'Testing' | mail -s 'Testing mail setup' [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.
Pisanje skripte za e-poštu
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
# Check hard drive space
echo 'Hard drive space:' > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo 'Users currently logged in:' >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo 'Running processes:' >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s 'Daily server information' [email protected]
# Delete the file we created
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:
$ 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.
Automatizirana e-pošta u sustavu Windows
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).
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 username -xp password -u 'Test email subject' -m 'This is a test email.'
Očito zamijenite "korisničko ime" i "lozinka" s vjerodajnicama računa prije izvršenja naredbe.
Evo što naredba gore zapravo radi:
sendEmail
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.
Pisanje skripte za e-poštu
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).
# Check hard drive space
echo 'C: Drive Usage:' > C:SendEmailinfo.txt
Get-WmiObject win32_LogicalDisk -Filter 'DeviceID='C:'' | Select-Object Size,FreeSpace >> C:SendEmailinfo.txt
# List currently running processes
echo 'Running processes:' >> C:SendEmailinfo.txt
get-process >> C:SendEmailinfo.txt
# List the files/folders currently being shared
echo 'SMB shares:' >> C:SendEmailinfo.txt
get-smbshare >> C:SendEmailinfo.txt
# Send the email
type C:SendEmailinfo.txt | C:SendEmailsendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Daily server info'
# Delete the file we made
rm C:SendEmailinfo.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
-file
argument i odredite put do skripte.
powershell -file 'c:SendEmaildaily-email.ps1'
Nakon što izradite kinks u svojoj skripti, možete ga koristiti za automatizaciju Windows Task Scheduler. Otvorite Task Scheduler sustava Windows putem izbornika Start.
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.