Ir svarīgi katru dienu pārbaudīt dažādus žurnāla datus un statistiku savā serverī, taču tas kļūst garlaicīgs. Vai nebūtu jauki, ja katru dienu saņemsiet vienu e-pastu ar visiem izceļotājiem, tāpēc jums pat nav nepieciešams nokļūt serverī, lai pārbaudītu problēmas? Šī rokasgrāmata parādīs, kā konfigurēt automatizētos e-pastus uz Linux un Windows.
Mēs to īpaši aplūkosim attiecībā uz Ubuntu un Windows 8.1, un Gmail tiek izmantots kā e-pasta serveris, no kura tiek sūtīts pasts. Ja jums ir cita Linux vai Windows versija vai arī vēlaties izmantot citu e-pasta pakalpojumu, šajā instrukcijā ir jābūt viegli pielāgojamam.
Lai veiktu šo, ssmtp un mailutils, mēs izmantosim divus dažādus pakotņus, tādēļ instalējiet tos abus ar šādu komandu:
$ sudo apt-get install ssmtp mailutils
Kad tie ir instalēti, mums ir jāveic dažas izmaiņas SSMTP konfigurācijas failā:
$ sudo vi /etc/ssmtp/ssmtp.conf
Rediģējiet failu ar šīm izmaiņām (droši vien vienkārši izdzēsiet visu failā esošo tekstu un, ja vēlaties, nokopējiet / ielīmējiet šos iestatījumus):
# Šī adrese saņems e-pastus, tāpēc ievadiet savu e-pastu šeit, ja vēlaties tos saņemt.
# Šeit norādiet e-pasta serveri (atstājiet, piemēram, ja izmantojat pakalpojumu Gmail).
mailhub = smtp.gmail.com: 587
# Domēna vārds, uz kuru sūtīsit e-pastu.
rewriteDomain = gmail.com
# E-pasta adrese, no kuras jānosūta šie e-pasta ziņojumi.
saimniekdatora nosaukums = lietotā[email protected]
# SSL / TLS iestatījumi, kas nepieciešami pakalpojumam Gmail un vairumam citu pasta serveru.
UseTLS = Jā
IzmantotSTARTTLS = Jā
# Jūsu Gmail konta lietotājvārds un parole.
AuthUser = lietotājvārds
AuthPass = parole
# Atļaujiet norādīt adresi, kas atšķiras no iepriekš minētās.
FromLineOverride = jā
Kad esat pabeidzis faila rediģēšanu, jūs vēlaties mainīt atļaujas, jo jūsu Gmail parole tiek glabāta vienkāršā tekstā.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Datora īpašnieks vienmēr ir drošāks, taču tad mums vajadzētu izmantot komandu sudo mūsu skriptā, un tas liks mums paroli, tādējādi uzvarot šī procesa automatizācijas mērķi.
Ja jūs izmantojat koplietojamo serveri un uztraucaties, ka jūsu parole tiek glabāta vienkāršā tekstā un to var lasīt ar root, izveidojiet izmežģī esošo Gmail kontu vai izmantojiet e-pasta serveri, kuram vispirms nav nepieciešama autentifikācija.
Lai pārliecinātos, ka viss ir pareizi konfigurēts, mēģināsim izmēģināt e-pastu:
$ echo "Testēšana" | pasts -s "Pasta iestatīšanas pārbaude" [email protected]
"Tests" būs e-pasta struktūrā, un tēma tiks "Pārbaudīt pasta iestatījumus". Pārbaudiet savu e-pastu, lai pārliecinātos, vai esat saņēmis šo e-pastu.
Tagad, kad mēs varam sūtīt e-pastus no komandrindas, rakstiet skriptu, kas mums nosūtīs kādu pamatinformāciju par mūsu sistēmu.
#! / bin / bash
# Pārbaudiet cietā diska vietu
echo "Cietā diska vieta:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Norādiet lietotājus, kuri ir pieteicies
echo "Lietotāji, kas pašlaik ir pieteicies:" >> /home/geek/email.txt
kas >> /home/geek/email.txt
# Pašlaik tiek rādīti procesi
echo "Darbības procesi:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Nosūtīt e-pastu
cat /home/geek/email.txt | pasts -s "Dienas servera informācija" [email protected]
# Izdzēsiet izveidoto failu
rm /home/geek/email.txt
Protams, jūs varat iegūt daudz padziļinātu informāciju par savu skriptu un pat padarīt formatējumu nedaudz labāku, bet tas ir tas, kas iznākumā izskatās mūsu e-pastā:
Tagad, kad skripts ir rakstīts un pārbaudīts, mēs varam izmantot cronu, lai to automātiski izpildītu katru dienu vienā un tajā pašā laikā. Šajā piemērā mēs konfigurēsim e-pasta ziņojumu, kas jānosūta katru pulksten plkst. 2:00, lai mēs tajā pašā dienā varētu izmantot datus.
$ crontab-e
Lai saņemtu 2:00 e-pastu, pievienojiet:
0 2 * * * /home/geek/script.sh
Mēs esam uzrakstījuši pilnu rakstu par crontab failiem, ja jums nepieciešama papildu palīdzība šajā daļā.
E-pasta ziņojumu sūtīšana komandrindā ir iespējama, izmantojot PowerShell, taču mēs esam noskaidrojuši, ka šo funkciju ieviešana ir daudz vienkāršāka ar trešo pušu lietotnēm, it īpaši, izmantojot Gmail. SendEmail ir bezmaksas programma, kas pieejama Windows, kas padara integrāciju ar Windows Task Scheduler un Gmail vieglumu. Noklikšķiniet uz augstāk esošās saites, lai lejupielādētu jaunāko kopiju, un pārliecinieties, ka esat paņēmis TLS atbalstīto versiju.
Kad esat lejupielādējis SendEmail, izraksta zip failu un ievieto saturu kaut kur, ka jūs varat to uzglabāt tik ilgi, kamēr plānojat sūtīt automātiskus e-pastus. Šajā piemērā mēs vienkārši glabāsim programmu C: \ SendEmail
Izmēģināsim SendEmail, lai ātri uzzinātu, kā tā darbojas. Atveriet komandu uzvedni, ierakstot cmd izvēlnē Sākt vai Palaist (Ctrl + R).
Atverot komandu uzvedni, izmantojiet komandu Change directory, lai pārvietotos uz vietu, kur esat saglabājis SendEmail failus.
cd C: \ SendEmail
Tagad mēs varam mēģināt sūtīt testa e-pastu ar šādu komandu:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu lietotājvārds -xp parole -u "Testa e-pasta tēma" -m "Šis ir testa e-pasts".
Protams, nomainiet "lietotājvārdu" un "paroli" ar sava konta akreditācijas datiem pirms komandas izpildes.
Tālāk ir norādīts, ko iepriekš minētā komanda patiešām veic:
sūtīt e-pastu
izpilda programmu.
-f
- no adreses
-t
- uz adresi
-s
- SMTP serveris
-xu
- konta lietotājvārds
-xp
- konta parole
-u
- e-pasta tēma
-m
- e-pasta pamatteksts
Pārbaudiet savu iesūtni, lai pārliecinātos, ka saņēmāt testa e-pastu, un pēc tam mēs varam turpināt rakstīt skriptu, kas nosūtīs mums informāciju par serveri.
Lai maksimāli izmantotu mūsu skriptu, mēs to rakstīsim PowerShell. Atveriet Windows PowerShell ISE, ierakstot powershell_ise.exe uz komandu Run (Ctrl + R).
PowerShell ISE loga labajā pusē varat norādīt katru komandu, ko PowerShell spēj izpildīt. Tam vajadzētu nodrošināt labu sākumu, lai radītu nepieciešamās informācijas veidus, par kuriem jāziņo. Jūsu skriptā varat arī piezvanīt trešo pušu programmām, lai iegūtu informāciju (t.i., SendEmail ir trešās puses lietotne, bet PowerShell un cmd to var izmantot, lai veiktu uzdevumus, kurus viņi parasti nevar izpildīt).
Mūsu piemēra skriptā mēs pārbaudīsim pašreizējo diska C diska izmantošanu, parāda pašlaik notiekošos procesus un parāda visus failus, kas pašlaik tiek kopīgoti tīklā.
# Pārbaudiet cietā diska vietu
echo "C: Drive Usage:"> C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Select-Object Size, FreeSpace >> C: \ SendEmail \ info.txt
# Pašlaik tiek rādīti procesi
echo "Darbības procesi:" >> C: \ SendEmail \ info.txt
get-process >> C: \ SendEmail \ info.txt
# Ierakstiet failus / mapes, kas pašlaik tiek kopīgoti
echo "SMB kopijas:" >> C: \ SendEmail \ info.txt
get-smbshare >> C: \ SendEmail \ info.txt
# Nosūtīt e-pastu
tips C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu lietotājvārds -xp parole -u "Dienas servera informācija"
# Izdzēsiet mūsu veikto failu
rm C: \ SendEmail \ info.txt
Šajā skriptā dažāda informācija tiek izvadīta uz C: \ SendEmail \ info.txt, un pēc tam šajā dokumentā esošais teksts mums tiek nosūtīts pa e-pastu pirms tas tiek izdzēsts. Saglabājiet savu skriptu ar faila paplašinājumu ps1 (PowerShell fails).
Kad jūsu skripts ir pabeigts, izpildiet ātru pārbaudi, lai pārbaudītu, vai tā darbojas pareizi.
Vienkārši izmantojiet PowerShell
komanda ar a -file
argumentu un norādiet ceļu uz jūsu skriptu.
powershell-file "c: \ SendEmail \ daily-email.ps1"
Pārbaudiet savu iesūtni, lai pārliecinātos, vai esat saņēmis e-pastu - ja nē, pārskatiet savu skriptu sintakses kļūdām. Lūk, kā izskatās, kā izveidojās mūsu piemēra skripta ģenerētais e-pasts:
Varat spēlēt ar formatējumu (piemēram, atstarojot tukšas līnijas starp tekstu), lai jūsu ierīce būtu labāka, vai vēl labāk, bet varat izmantot trešās puses programmu, kas izdos vajadzīgo informāciju vairāk lasāmā formātā nekā Windows ( skriptu process joprojām būs vienāds).
Kad esat izveidojis skriptu, varat izmantot Windows uzdevumu plānotāju, lai to automatizētu. Atveriet Windows uzdevumu plānotāju, izmantojot izvēlni Sākt.
Atverot uzdevumu plānotāju, atlasiet Darbība> Izveidot pamatdarbu.
Nosaukiet šo uzdevumu kaut kas līdzīgs "Daily email script" un noklikšķiniet uz "Next". Nākamajā ekrānā atlasiet frekvenci, ar kādu vēlaties, lai jūsu e-pasta skripts darbotos, iespējams, katru dienu. Pēc tam izvēlieties laiku, kurā skripts jāuzsāk, un nospiediet nākamo.
Tagad jums vajadzētu būt vedņa sadaļā "Darbība", izvēlieties "Startēt programmu" un ievadiet to pašu tekstu, kuru mēs ievadījām ātrās palaišanas reizē, lai pārbaudītu mūsu skriptu.
Noklikšķiniet uz nākamā un pēc tam uz šī loga nospiediet Jā.
Pēdējā izvēlnē noklikšķiniet uz Pabeigt, un esat pabeidzis automātisko e-pasta plānošanu.