Kā automātiski ģenerēt un nosūtīt datoru statistiku
Ir svarīgi katru dienu pārbaudīt dažādus žurnāla datus un statistiku par serveri, bet tas kļūst garlaicīgs. Vai nebūtu jauki saņemt vienu e-pastu ar visiem svarīgākajiem notikumiem katru dienu, 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ētus e-pastus uz Linux un Windows.
Mēs to īpaši sedzam Ubuntu un Windows 8.1, jo 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 kādu citu e-pasta pakalpojumu, šajā instrukcijā jābūt viegli pielāgojamām.
Automatizētie e-pasta ziņojumi Linux
Lai to paveiktu, mēs izmantosim divas dažādas paketes, ssmtp un mailutils, tāpēc instalējiet abas tās ar šādu komandu:
$ sudo apt-get instalēt ssmtp mailutils
Kad tās ir instalētas, ir jāveic dažas izmaiņas SSMTP konfigurācijas failā:
$ sudo vi /etc/ssmtp/ssmtp.conf
Rediģējiet failu ar šīm izmaiņām (ir droši izdzēst visu failu failā un kopēt / ielīmēt šos iestatījumus, ja vēlaties):
# Šī adrese saņems e-pasta ziņojumus, tādēļ, ja vēlaties tos saņemt, ievadiet savu e-pastu.
# Norādiet e-pasta serveri šeit (atstājiet, ja lietojat Gmail).
mailhub = smtp.gmail.com: 587
# Domēna vārds, no kura tiks sūtīts pasts.
rewriteDomain = gmail.com
# E-pasta adrese, kurai jābūt no šīm e-pasta ziņām.
# SSL / TLS iestatījumi, kas nepieciešami Gmail un vairumam citu pasta serveru.
UseTLS = Jā
UseSTARTTLS = Jā
# Jūsu Gmail konta lietotājvārds un parole.
AuthUser = lietotājvārds
AuthPass = parole
# Ļaujiet noteikt citu adresi, nevis iepriekš minēto.
NoLineOverride = jā
Kad esat pabeidzis faila rediģēšanu, vēlaties mainīt atļaujas, jo jūsu Gmail parole tiek saglabāta vienkāršā tekstā.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Tas vienmēr ir drošāks, lai izveidotu faila īpašnieku, bet tad mums būtu jāizmanto sudo komanda mūsu skriptos, un tas liks mums parole, tādējādi pārvarot šī procesa automatizācijas mērķi..
Ja izmantojat kopīgu serveri un esat noraizējies par to, ka parole tiek saglabāta vienkāršā tekstā un ir nolasāma pēc root, izveidojiet izsmidzinātu Gmail kontu vai izmantojiet e-pasta serveri, kuram nav nepieciešama nekāda veida autentifikācija..
Lai pārliecinātos, ka viss ir pareizi konfigurēts, izmēģināsim testa e-pastu:
$ echo "Testēšana" | mail -s "Pasta iestatīšanas pārbaude" lietotājvā[email protected]
“Testēšana” būs e-pasta ziņojumā, un tēma būs “Pasta iestatīšanas pārbaude”. Pārbaudiet savu e-pastu, lai pārliecinātos, ka esat to saņēmis.
Rakstot skriptu e-pastiem
Tagad, kad mēs varam sūtīt e-pastus no komandrindas, rakstīsim skriptu, kas mums nosūtīs pamatinformāciju par mūsu sistēmu.
#! / bin / bash
# Pārbaudiet cietā diska vietu
atbalss "Cietā diska vieta:"> /home/geek/email.txt
df -h >> /home/geek/email.txt
# Uzskaitiet lietotājus, kas ir pieteicies
echo "Lietotāji šobrīd ir pieteicies:" >> /home/geek/email.txt
kas >> /home/geek/email.txt
# Uzskaitiet pašlaik darbojošos procesus
echo "Running process:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Sūtīt e-pastu
kaķis / home/geek/email.txt | mail -s "Dienas servera informācija" lietotājvā[email protected]
# Dzēsiet izveidoto failu
rm /home/geek/email.txt
Acīmredzot jūs varat iegūt daudz padziļinātu skriptu un pat padarīt formatējumu mazliet skaistāku, bet tas ir tas, kā produkcija izskatās mūsu e-pastā:
Tagad, kad skripts ir rakstīts un pārbaudīts, mēs varam izmantot cron, lai to automātiski izpildītu tajā pašā laikā katru dienu. Šajā piemērā mēs konfigurēsim e-pasta ziņojumus, kas tiks nosūtīti katru rītu plkst. 2:00, lai mēs varētu veikt datus vēlāk šajā dienā.
$ crontab -e
2:00 AM e-pastiem pievienojiet:
0 2 * * * / home/geek/script.sh
Ja jums ir nepieciešama papildu palīdzība saistībā ar šo daļu, mēs esam rakstījuši visu rakstu par crontab failiem.
Automatizētie e-pasta ziņojumi sistēmā Windows
E-pasta ziņu sūtīšana komandrindā ir iespējama, izmantojot PowerShell, bet mēs esam noskaidrojuši, ka šīs funkcionalitātes ieviešana ir daudz vieglāka ar trešo pušu lietotnēm, īpaši, ja izmantojat Gmail. SendEmail ir bezmaksas programma, kas pieejama sistēmai Windows, kas padara integrāciju ar Windows uzdevumu plānotāju un Gmail. Noklikšķiniet uz augstāk minētās saites, lai lejupielādētu jaunāko kopiju, un pārliecinieties, ka jūs saņemat TLS atbalstīto versiju.
Kad esat lejupielādējis SendEmail, noņemiet zip failu un ievietojiet saturu kaut kur, ko jūs varat glabāt, kamēr plānojat nosūtīt automatizētus e-pastus. Šajā piemērā mēs tikai gatavojamies saglabāt programmu C: SendEmail
Pārbaudīsim SendEmail, lai iegūtu ātru sajūtu, kā tā darbojas. Atveriet komandu uzvedni, ievadot cmd izvēlnē Sākt vai Palaist (Ctrl + R).
Atverot komandu uzvedni, izmantojiet izmaiņu direktorijas komandu, lai pārvietotos uz vietu, kur saglabājāt SendEmail failus.
cD C: E-pasts
Tagad mēs varam mēģināt nosūtīt testa e-pastu ar šādu komandu:
sendEmail -f lietotājvā[email protected] -t lietotājvā[email protected] -s smtp.gmail.com:587 -xu lietotājvārds -xp parole -u "Pārbaudīt e-pasta tēmu" -m "Šis ir testa e-pasts."
Protams, pirms komandas izpildes nomainiet vārdu “lietotājvārds” un “parole” ar konta akreditācijas datiem.
Lūk, kāda ir iepriekš minētā komanda:
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ēmu
-m
- e-pasta teksta teksts
Pārbaudiet iesūtni, lai pārliecinātos, ka esat saņēmis testa e-pastu, un pēc tam mēs varam pāriet uz rakstīt skriptu, kas nosūtīs mums servera informāciju.
Rakstot skriptu e-pastiem
Lai iegūtu maksimālu labumu no mūsu skripta, mēs to rakstīsim PowerShell. Atveriet Windows PowerShell ISE, ierakstot komandu powershell_ise.exe uz komandu Run (Ctrl + R).
PowerShell ISE loga labajā pusē varat uzskaitīt katru komandu, ko PowerShell spēj izpildīt. Tam jāsniedz labs sākums, lai radītu nepieciešamo informāciju, kas jums jāziņo. Skriptos varat arī zvanīt uz trešo pušu programmām, lai izvadītu arī informāciju (t.i. SendEmail ir trešās puses lietojumprogramma, bet PowerShell un cmd var to izmantot, lai veiktu uzdevumus, ko viņi parasti nevar veikt).
Mūsu piemēru skriptam mēs pārbaudīsim C diska pašreizējo disku izmantošanu, parādīsim pašreizējos procesus un parādīsim visus failus, kas pašlaik tiek dalīti tīklā.
# Pārbaudiet cietā diska vietu
echo "C: diska izmantošana:"> C: e-pasta info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:" " Select-Object Size, FreeSpace >> C: SendEmail info.txt
# Uzskaitiet pašreiz darbotos procesus
echo "Running process:" >> C: SendEmail info.txt
get-process >> C: SendEmail info.txt
# Uzskaitiet pašreiz koplietojamos failus / mapes
echo "SMB akcijas:" >> C: SendEmail info.txt
get-smbshare >> C: E-pasts info.txt
# Sūtīt e-pastu
tips C: SendEmail info.txt | C: Nosūtīt e-pastu e-pasts -f lietotājvā[email protected] -t lietotājvā[email protected] -s smtp.gmail.com:587 -xu lietotājvārds -xp parole -u "Dienas servera informācija"
# Dzēsiet veikto failu
rm C: E-pasts info.txt
Šajā skriptā tiek izvadīta C informācija: SendEmail info.txt, un tad šī dokumenta teksts mums tiek nosūtīts pa e-pastu, pirms tas tiek izdzēsts. Saglabājiet skriptu ar faila paplašinājumu ps1 (PowerShell fails).
Kad jūsu skripts ir pabeigts, palaidiet ātru pārbaudi no Run uzvednes, lai pārliecinātos, ka tas darbojas pareizi.
Vienkārši izmantojiet powerhell
komandu ar a -failu
argumentu un norādiet ceļu uz jūsu skriptu.
powershell -file "c: e-pasts \ t
Pārbaudiet iesūtni, lai pārliecinātos, ka esat saņēmis e-pasta ziņojumu - ja ne, skatiet savu skriptu, lai iegūtu sintakses kļūdas. Lūk, kāda ir ģenerētā e-pasta vēstule no mūsu parauga skripta:
Jūs varat spēlēt apkārt ar formatējumu (piemēram, atkārtojot tukšas rindas starp tekstu), lai tas būtu labāks jūsu ierīcē vai vēl labāk, ja jūs varat izmantot trešās puses programmu, kas izdrukās nepieciešamo informāciju lasāmākā formātā nekā Windows ( skriptu process joprojām būs vienāds).
Kad esat izveidojis skripta kinks, 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, izvēlieties Darbība> Izveidot pamatuzdevumu.
Nosaukiet šo uzdevumu kā “Ikdienas e-pasta skriptu” un noklikšķiniet uz Tālāk. Nākamajā ekrānā atlasiet biežumu, ar kuru vēlaties, lai jūsu e-pasta skripts darbotos, iespējams, katru dienu. Pēc tam izvēlieties laiku, kuru vēlaties skriptam palaist, un nospiediet nākamo.
Tagad jums vajadzētu būt vedņa “Rīcības” daļā, atlasiet “Sākt programmu” un ievadīt to pašu tekstu, ko ievadījām uzvednē “Veikt ātrāk”, lai pārbaudītu mūsu skriptu.
Nospiediet nākamo un pēc tam noklikšķiniet uz Jā šajā logā:
Pēdējā izvēlnē noklikšķiniet uz Pabeigt, un esat pabeidzis savu automātisko e-pastu plānošanu.