11Jul

Kaip automatiškai kurti ir siųsti kompiuterio statistiką

Svarbu kiekvieną dieną tikrinti įvairius žurnalo duomenis ir statistinius duomenis savo serveryje, tačiau jis tampa varginantis. Ar nebūtų malonu gauti vieną el. Laišką su visais svarbiausiais įvykiais kiekvieną dieną, todėl net nereikia patekti į serverį patikrinti problemas?Šis vadovas parodys, kaip konfigūruoti automatinius el. Laiškus sistemose "Linux" ir "Windows".

Mes specialiai aptarsime tai "Ubuntu" ir "Windows 8.1", o "Gmail" naudojamas kaip el. Pašto serveris, iš kurio siunčiamas el. Paštas. Jei turite kitą "Linux" arba "Windows" versiją arba norite naudoti kokią nors kitą el. Pašto paslaugą, čia pateiktos instrukcijos turėtų būti lengvai pritaikomos.

automatiniai el. Laiškai "Linux"

Mes ketiname naudoti du skirtingus paketus, kad įvykdytų tai, ssmtp ir mailutils, todėl jas įdiekite naudodami šią komandą:

$ sudo apt-get install ssmtp mailutils

Kai tik jie yra įdiegti, mums reikiaatlikti tam tikrus SSMTP konfigūracijos failo pakeitimus:

$ sudo vi /etc/ssmtp/ ssmtp.conf

Redaguokite failą su šiais pakeitimais( saugu paprasčiausiai ištrinti visą failo tekstą ir nukopijuoti / įklijuoti šiuos nustatymus, jei norite).:

# Šis adresas gaus el. Laiškus, todėl, jei norite juos gauti, įveskite savo el. Pašto adresą.

[email protected]

# Nurodykite el. Pašto serverį čia( palikite taip, tarsi jūs naudojate "Gmail").

mailhub = smtp.gmail.com: 587

# Domeno vardas, iš kurio ateina paštas.

rewriteDomain = gmail.com

# El. Pašto adresas, kuriuo turėtų būti šie el. Laiškai.

hostname = username_gmail.com

# SSL / TLS nustatymai, reikalingi "Gmail" ir daugeliui kitų pašto serverių.

UseTLS = Taip

NaudotiSTARTTLS = Taip

# Vartotojo vardas ir slaptažodis jūsų "Gmail" paskyrai.

AuthUser = vartotojo vardas

AuthPass = slaptažodis

# Leisti nurodyti kitą adresą, negu tas, kuris nurodytas aukščiau.

FromLineOverride = taip

Kai baigsite redaguoti failą, norėsite keisti leidimus, nes jūsų "Gmail" slaptažodis bus saugomas paprastu tekstu.

$ sudo chmod 640 /etc/ssmtp/ ssmtp.conf

$ sudo chown username.username /etc/ssmtp/ ssmtp.conf

Visuomenės saugumas yra failo savininko sukūrimas, bet tada mes turėsime naudoti komandą sudo į mūsų scenarijų ir tai būtųpasikvieskite slaptažodį, kad nugalėtume šio proceso automatizavimo tikslą.

Jei naudojate bendrintą serverį ir nerimauja dėl to, kad jūsų slaptažodis saugomas paprastu tekstu ir yra įskaitomas root, sukurkite išmintingą "Gmail" paskyrą arba naudokite el. Pašto serverį, kuris pirmiausia nereikalauja jokio tipo autentifikavimo.

Norėdami įsitikinti, kad viskas tinkamai sukonfigūruotas, pabandykite bandymo el. Laišką:

$ echo "Testavimas" |mail -s "Pašto sąrankos testavimas" [email protected]

"Testavimas" bus el. laiško korpusas, o tema bus "Testavimas pašto sąrankos". Patikrinkite savo el. paštą, kad įsitikintumėte, ar gavote pranešimą.

Rašyti scenarijų laiškams

Dabar, kai mes galime siųsti el. Laiškus iš komandinės eilutės, parašyk scenarijų, kuris atsiųs mums keletą pagrindinių duomenų apie mūsų sistemą.

#!/bin/ bash

# Patikrinkite kietojo disko vietą

echo "Kietojo disko vieta:" & gt;/home/geek/ email.txt

df -h & gt; & gt;/home/geek/ email.txt

# Nurodykite vartotojus, kurie yra prisijungę

echo "Šiuo metu prisijungę vartotojai:" & gt; & gt;/home/geek/ email.txt

who & gt; & gt;/home/geek/ email.txt

# Šiuo metu veikia procesai

echo "Running processes:" & gt; & gt;/home/geek/ email.txt

ps -e & gt; & gt;/home/geek/ email.txt

# Siųsti el. Laišką

cat /home/geek/ email.txt |mail -s "Dienos serverio informacija" [email protected]

# Ištrinkite failą, kurį mes sukūrėme

rm /home/geek/ email.txt

Akivaizdu, kad galite kurti daug išsamiau savo scenarijų ir net padaryti formatavimą šiek tiek gražesnį, bettai yra tai, ką mūsų el. paštas atrodo:

Dabar, kai scenarijus yra parašytas ir išbandytas, mes galime naudoti cron, kad kiekvieną dieną jis būtų automatiškai paleistas vienu metu.Šiame pavyzdyje mes sukonfigūruosime el. Laišką, kuris bus siunčiamas kiekvieną rytą 2:00 val., Todėl tą dieną galėsime peržiūrėti duomenis.

$ crontab -e

2:00 AM el. Laiškai pridėti:

0 2 * * * /home/geek/ script.sh

Mes parašėme visą straipsnį apie crontab failus, jei jums reikia daugiau pagalbos šioje dalyje.

automatiniai el. Laiškai sistemoje "Windows

" Siunčiami el. Laiškai komandinėje eilutėje yra įmanoma naudojant "PowerShell", tačiau mes nustatėme, kad trečiųjų šalių programoms, ypač naudojant "Gmail", šios funkcijos yra daug lengviau įgyvendinamos. SendEmail yra nemokama programa "Windows", kuri integruojasi su "Windows Task Scheduler" ir "Gmail".Spustelėkite aukščiau esančią nuorodą, kad atsisiųstumėte naujausią kopiją ir įsitikinkite, kad patraukėte TLS palaikomą versiją.

Kai atsisiuntėte "SendEmail", išskleiskite zip failą ir įdiekite turinį kur nors, kurį galite laikyti, kol planuojate siųsti automatinius el. Laiškus.Šiame pavyzdyje mes ketiname saugoti programą C: \ SendEmail

Išbandykite "SendEmail", kad galėtumėte greitai jausti, kaip tai veikia. Atidarykite komandų eilutę, įvedę cmd į meniu Pradėti arba Vykdyti( Ctrl + R).

Atsidarius komandų eilutėje, naudokite komandą "Change Directory", kad galėtumėte naršyti ten, kur išsaugojote "SendEmail" failus.

cd C: \ SendEmail

Dabar mes galime bandyti nusiųsti bandymo el. Laišką naudodami šią komandą:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu vartotojo vardas -xppassword -u "Test email subject" -m "Tai bandomasis el. pašto adresas".

Akivaizdu, kad prieš paleidžiant komandą pakeiskite "vartotojo vardą" ir "slaptažodį" su savo paskyros duomenimis.

Štai, ką iš tikrųjų daro komanda:

sendEmail vykdo programą.

-f - iš adreso

-t - adresu

-s - SMTP serveris

-xu - paskyros naudotojo vardas

-xp - paskyros slaptažodis

-u - el. Laiško tema

-m - el. Laiško tekstas

Patikrinkite gautuosius, kad įsitikintumėtegavote bandomąjį el. laišką, tada galime pereiti prie scenarijaus, kuris atsiųs mums serverio informaciją, rašymą.

Rašyti scenarijų laiškams

Norėdami kuo geriau išnaudoti mūsų scenarijų, mes ketiname parašyti jį "PowerShell".Atidarykite "Windows PowerShell ISE", įvesdami "powershell_ise.exe" į komandą "Vykdyti"( Ctrl + R).

Dešinėje "PowerShell ISE" lango dalyje galite nurodyti kiekvieną komandą, kurią "PowerShell" gali vykdyti. Tai turėtų suteikti jums gerą pradžią apie informacijos, kurią jums reikia pateikti, rūšis. Savo scenarijuje taip pat galite skambinti trečiosios šalies programoms taip pat pateikti informaciją( t. Y. SendEmail yra trečiosios šalies programa, tačiau "PowerShell" ir "cmd" gali ją naudoti norėdami atlikti užduotis, kurių paprastai jos negali).

Mūsų pavyzdiniame scenarijuje mes patikrinsime dabartinį disko C disko naudojimą, parodysime šiuo metu veikiančius procesus ir rodysime visus failus, kurie šiuo metu yra bendrinami per tinklą.

# Patikrinkite kietojo disko vietą

echo "C: Drive usage:" & gt;C: \ SendEmail \ info.txt

Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" |Pasirinkite "Object Size", "FreeSpace" & gt; & gt;C: \ SendEmail \ info.txt

# Šiuo metu vykdomi procesai

echo "Running processes:" & gt; & gt;C: \ SendEmail \ info.txt

get-process & gt; & gt;C: \ SendEmail \ info.txt

# Nurodykite šiuo metu bendrinamus failus / aplankus

echo "SMB shares:" & gt; & gt;C: \ SendEmail \ info.txt

get-smbshare & gt; & gt;C: \ SendEmail \ info.txt

# Siųsti el. Laišką

tipo C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu vartotojo vardas -xp slaptažodis -u "Kasdienio serverio informacija"

# Ištrinkite failą, kurį padarėme

rm C: \ SendEmail \ info.txt

Šiame scenarijuje įvairūs duomenys yra išvedami į C: \ SendEmail \ info.txt, o tada tekstas šiame dokumente mums siunčiamas elektroniniu paštu, kol jis bus ištrintas. Išsaugokite scenarijų naudodami ps1 failo plėtinį( PowerShell failą).

Kai jūsų scenarijus baigtas, paleiskite greitąjį bandymą, kad įsitikintumėte, ar jis tinkamai veikia.

Tiesiog naudokite komandą powershell su failo argumentu ir nurodykite kelią prie scenarijaus.

powershell -file "c: \ SendEmail \ daily-email.ps1"

Patikrinkite gautuosius, kad įsitikintumėte, jog gavote el. Laišką. Jei ne, peržiūrėkite savo scenarijų sintaksės klaidoms.Štai, kaip atrodo, kad sukurtas el. Laiškas iš mūsų pavyzdinio scenarijaus:

. Galite žaisti su formatu( pvz., Echo tuščias eilutes tarp teksto), kad jo ekrane būtų lengviau rodyti, o dar geriau, galite naudoti trečiosios šalies programą, kuri busišvesties reikalingą informaciją lengviau nuskaitomai nei "Windows"( scenarijų procesas vis tiek bus toks pats).

Kai savo scenarijuje sukūrėte paketus, galite naudoti "Windows Task Scheduler", kad jį automatizuotumėte. Atidarykite "Windows Task Scheduler" per meniu "Start".

Atidarę užduočių planavimo priemonę, pasirinkite veiksmą & gt;Sukurkite pagrindinę užduotį.

Pavadinkite šią užduotį kaip "Daily email script" ir spustelėkite "Next".Kitu ekranu pasirinkite dažnį, su kuriuo norėtumėte paleisti el. Pašto scenarijų, tikriausiai kasdien. Tada pasirinkite laiką, kurį norite paleisti scenarijų, ir spustelėkite kitą.

Dabar turite būti vedlio "Veiksmų" dalyje, pasirinkite "Pradėti programą" ir įveskite tą patį tekstą, kurį anksčiau įvedėme "Run prompt", kad išbandytume savo scenarijų.

Pabandykite dar kartą, tada palieskite Taip šiame lange:

Spustelėkite Baigti paskutiniame meniu ir baigsite planuoti automatinius el. Laiškus.