11Jul
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 īpaši to 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.
Automated Emails in Linux
Mēs izmantosim divus dažādus pakotnes, lai veiktu šo, ssmtp un mailutils, tāpēc instalējiet tos abus ar šādu komandu:
$ sudo apt-get install ssmtp mailutils
Kad tie ir instalēti, mums ir nepieciešamsveikt dažas izmaiņas SSMTP konfigurācijas failā:
$ sudo vi /etc/ssmtp/ ssmtp.conf
Failu rediģējiet 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ādēļ ievadiet savu e-pastu šeit, ja vēlaties saņemt tos.
# Šeit norādiet e-pasta serveri( atstājiet tā, it kā lietojat Gmail).
mailhub = smtp.gmail.com: 587
# Domēna nosaukums, no kura sūtīsit pastu.
rewriteDomain = gmail.com
# E-pasta adrese, no kuras jānosūta šie e-pasta ziņojumi.
hostname = username_gmail.com
# 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
# Ļauj norādīt adresi, kas atšķiras no iepriekšējā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
Vienmēr ir drošāk, lai izveidotu faila īpašnieku root, bet tad mums vajadzētu izmantot komandu sudo mūsu skriptā, un tasuzvedīs 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 nolasīt ar saknes palīdzību, izveidojiet visaptverošu Gmail kontu vai izmantojiet e-pasta serveri, kuram vispirms nav nepieciešams kāds autentifikācijas veids.
Lai pārliecinātos, ka viss ir pareizi konfigurēts, mēģināsim izmēģināt e-pastu:
$ echo "Testing" |pasts -s "Mailing setup testēšana" [email protected]
"Testēšana" būs e-pasta pamatteksts, 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.
E-pasta skriptu rakstīšana
Tagad, kad mēs varam nosū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:" & gt;/home/geek/ e-pasts. Txt
df -h>/home/geek/ email.txt
# Norādiet lietotājus, kas ir pieteicies
echo "Lietotāji, kas pašlaik ir pieteicies:" & gt; & gt;/home/geek/ email.txt
who & gt; & gt;/home/geek/ email.txt
# Saraksts pašlaik darbojas process
echo "Running processes:" & gt; & gt;/home/geek/ email.txt
ps -e & gt; & gt;/home/geek/ email.txt
# Nosūtīt e-pasta ziņojumu
kaķis /home/geek/ email.txt |mail -s "Dienas servera informācija" [email protected]
# Izdzēsiet failu, kuru mēs izveidojām
rm /home/geek/ email.txt
Protams, jūs varat iegūt daudz dziļāku informāciju par savu skriptu un pat padarīt formatējumu nedaudz labāku, betšī izeja 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
Par 2:00 e-pastu, pievienojiet:
0 2 * * * /home/geek/ script.sh
Mēs esam uzrakstījuši visu rakstu par crontab failiem, ja jums nepieciešama papildu palīdzība šajā daļā.
Automātiskās e-pasta sistēmas Windows
E-pasta ziņojumu sūtīšana komandrindā ir iespējama, izmantojot PowerShell, taču mēs esam konstatējuši, ka šīs funkcijas ieviešana ir daudz vienkāršāka ar trešo pušu lietotnēm, it īpaši, ja tiek izmantots 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.
Pēc tam, kad esat lejupielādējis SendEmail, izrakstiet zip failu un ievietojiet saturu kaut kur, kur jūs varat to saglabāt tik ilgi, kamēr plānojat sūtīt automātiskus e-pastus.Šajā piemērā mēs vienkārši glabājam programmu programmā C: \ SendEmail
. Izmēģiniet 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 nosūtīt testa e-pastu ar šādu komandu:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu lietotājvārds -xpparole -u "Testa e-pasta tēma" -m "Šis ir testa e-pasts."
Protams, pirms komandas izpildes nomainiet "lietotājvārdu" un "paroli" ar sava konta akreditācijas datiem.
Lūk, kāda ir iepriekšējā komanda:
sendEmail izpilda programmu.
-f - no adreses
-t - lai adresētu
-s - SMTP serveris
-xu - konta lietotājvārds
-xp - konta parole
-u - e-pasta pakalpojums
-m - e-pasta virsraksts
Pārbaudiet savu iesūtni, lai pārliecinātosjūs saņēmāt pārbaudes e-pastu, un pēc tam mēs varam turpināt rakstīt skriptu, kas nosūtīs mums informāciju par serveri.
Script rakstīšana e-pastam
Lai pilnībā 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 C diska pašreizējo 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:" & gt;C: \ SendEmail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" |Izvēlieties-Object Size, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt
# Saraksts pašlaik darbojas process
echo "Running processes:" & gt; & gt;C: \ SendEmail \ info.txt
get-process & gt; & gt;C: \ SendEmail \ info.txt
# Saraksts ar pašreiz koplietojamiem failiem / mapēm
echo "SMB shares:" & gt; & gt;C: \ SendEmail \ info.txt
get-smbshare & gt; & gt;C: \ SendEmail \ info.txt
# Nosūtīt e-pasta ziņojumu
tipa 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 failu, kuru mēs izgatavojām
rm C: \ SendEmail \ info.txt
Šajā skriptā dažāda informācija tiek izvadīta uz C: \ SendEmail \ info.txt, un tad šis dokuments tiek nosūtīts mums 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ārliecinātos, ka tas darbojas pareizi.
Vienkārši izmantojiet komandu powershell ar -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āds ir mūsu veidotā e-pasta ziņojums no mūsu piemēra skripta:
Jūs 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 programmuizvadīs nepieciešamo informāciju lasāmākā formātā nekā Windows( skriptēšanas process joprojām būs vienāds).
Kad esat izveidojis kinkus savā skriptā, 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 & gt;Izveidot pamata uzdevumu.
Nosauciet šo uzdevumu kaut kas līdzīgs "Daily email script" un noklikšķiniet uz nākamā.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ļā "Rīcī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ā.
Noklikšķiniet uz Pabeigt pēdējā izvēlnē un esat pabeidzis plānot automātiskos e-pasta ziņojumus.