Pagrindinis » kaip » Kaip automatiškai generuoti ir siųsti kompiuterio statistiką

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

    Svarbu kasdien patikrinti įvairius jūsų serverio žurnalo duomenis ir statistiką, tačiau jis tampa nuobodus. Ar ne būtų malonu gauti vieną el. Laišką su visais svarbiausiais renginiais kiekvieną dieną, taigi jums net nereikės patekti į serverį, kad patikrintumėte problemas? Šis vadovas parodys, kaip konfigūruoti automatinius el. Laiškus „Linux“ ir „Windows“ sistemose.

    Tai bus specialiai skirta „Ubuntu“ ir „Windows 8.1“, nes „Gmail“ bus naudojamas kaip el. Pašto serveris, iš kurio siunčiamas laiškas. Jei turite kitą „Linux“ ar „Windows“ versiją arba norite naudoti kitą el. Pašto paslaugą, čia pateiktos instrukcijos turėtų būti lengvai pritaikomos.

    Automatizuoti laiškai Linux sistemoje

    Šiam tikslui pasiekti naudosime du skirtingus paketus: ssmtp ir mailutils, todėl įdiekite abi šias komandas:

    $ sudo apt-get įdiegti ssmtp mailutils

    Kai tik jie bus įdiegti, turime atlikti kai kuriuos SSMTP konfigūracijos failo pakeitimus:

    $ sudo vi /etc/ssmtp/ssmtp.conf

    Redaguokite failą su šiais pakeitimais (galite saugiai ištrinti visą failo tekstą ir kopijuoti / įklijuoti šiuos nustatymus, jei norite):

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

    [email protected]

    # Čia nurodykite el. Pašto serverį (palikite, jei naudojate „Gmail“).

    mailhub = smtp.gmail.com: 587

    # Domeno vardas, iš kurio bus gautas laiškas.

    rewriteDomain = gmail.com

    # El. Pašto adresas, kurį turi gauti šie laiškai.

    [email protected]

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

    UseTLS = Taip

    UseSTARTTLS = Taip

    # „Gmail“ paskyros naudotojo vardas ir slaptažodis.

    AuthUser = vartotojo vardas

    AuthPass = slaptažodis

    # Leiskite gebėti nurodyti kitokį adresą nei aukščiau.

    IšLineOverride = taip

    Kai baigsite redaguoti failą, norėsite pakeisti teises, nes jūsų „Gmail“ slaptažodis yra saugomas paprastu tekstu.

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

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

    Visada saugiau sukurti failo savininko šaknį, bet tada mūsų scenarijuje turėtume naudoti sudo komandą, kuri paskatintų mums slaptažodį, tokiu būdu nugalėdama viso šio proceso automatizavimo tikslą.

    Jei naudojate bendrai naudojamą serverį ir nerimaujate, kad jūsų slaptažodis yra saugomas paprastu tekstu ir nuskaitomas pagal šaknį, sukurkite „Gmail“ sąskaitą arba naudokite el. Pašto serverį, kuriam nereikia visų tipų autentifikavimo..

    Jei norite įsitikinti, kad viskas sukonfigūruota teisingai, išbandykime el. Laišką:

    $ echo "Testavimas" mail -s "El. pašto sąrankos testavimas" vartotojo [email protected]

    „Testavimas“ bus el. Laiško elemente, o tema bus „Tikrinti pašto sąranką“. Patikrinkite el. Paštą ir įsitikinkite, kad jį gavote.

    Rašyti el. Laiškų scenarijų

    Dabar, kai galime siųsti el. Laiškus iš komandų eilutės, parašykime scenarijų, kuris mums atsiųs pagrindinę informaciją apie mūsų sistemą.

    #! / bin / bash

    # Patikrinkite standžiojo disko vietą

    echo "Kietojo disko vietos:"> /home/geek/email.txt

    df -h >> /home/geek/email.txt

    # Nurodykite naudotojus, kurie yra prisijungę

    echo "Vartotojai šiuo metu prisijungė:" >> / home /geek/email.txt

    kas >> /home/geek/email.txt

    # Sąrašas šiuo metu veikiančių procesų

    echo "Veikimo procesai:" >> /home/geek/email.txt

    ps -e >> /home/geek/email.txt

    # Siųsti el. Laišką

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

    # Ištrinkite sukurtą failą

    rm /home/geek/email.txt

    Akivaizdu, kad jūs galite gauti daug išsamesnę informaciją su savo scenarijumi ir netgi padaryti šiek tiek gražesnį formatavimą, bet tai atrodo kaip mūsų el.

    Dabar, kai scenarijus yra parašytas ir išbandytas, mes galime naudoti cron automatiškai jį vykdyti kasdien tuo pačiu laiku. Šiame pavyzdyje mes sukonfigūruosime el. Paštą, kuris bus išsiųstas kiekvieną rytą 2:00, kad vėliau galėtume eiti per duomenis.

    $ crontab -e

    2:00 AM el. Laiškams pridėkite:

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

    Jei jums reikia daugiau pagalbos su šia dalimi, parašėme visą straipsnį apie „crontab“ failus.

    Automatizuoti laiškai „Windows“

    El. Laiškų siuntimas komandų eilutėje yra galimas per „PowerShell“, tačiau nustatėme, kad šios funkcijos įgyvendinimas yra daug lengviau naudodamasis trečiųjų šalių programomis, ypač naudojant „Gmail“. „SendEmail“ yra nemokama programa, skirta „Windows“, kuri leidžia integruoti su „Windows Task Scheduler“ ir „Gmail“. Spustelėkite aukščiau esančią nuorodą, kad galėtumėte atsisiųsti naujausią kopiją, ir įsitikinkite, kad patraukiate TLS palaikomą versiją.

    Atsisiuntę „SendEmail“, išskleiskite „zip“ failą ir įdėkite turinį kažkur, kur galite juos saugoti tol, kol planuojate siųsti automatinius el. Laiškus. Šiame pavyzdyje mes tiesiog ketiname išsaugoti programą C: SendEmail

    Išbandykime SendEmail, kad galėtumėte greitai jaustis, kaip jis veikia. Atidarykite komandų eilutę, įvesdami cmd į meniu Pradėti arba Vykdyti (Ctrl + R).

    Atidarius komandų eilutę, naudokite komandą „Pakeisti katalogą“, kad pereitumėte į vietą, kurioje išsaugojote „SendEmail“ failus.

    cd C: „Email“

    Dabar mes galime pabandyti siųsti bandomąjį el. Laišką su tokia komanda:

    sendEmail -f vartotojo [email protected] -t vartotojo [email protected] -s smtp.gmail.com:587 -xu vartotojo vardas -xp slaptažodis -u "Išbandykite el. pašto temą" -m "Tai bandomasis el.

    Akivaizdu, kad prieš vykdydami komandą „vartotojo vardas“ ir „slaptažodis“ pakeičiami paskyros kredencialais.

    Štai ką anksčiau pateikta komanda:

    Siųsti laišką vykdo programą.

    -f - iš adreso

    -t - Adresuoti

    -s - SMTP serveris

    -xu - paskyros naudotojo vardas

    -xp - paskyros slaptažodis

    -u - elektroninio laiško tema

    -m - el. laiško tekstą

    Patikrinkite el. Pašto dėžutę, kad įsitikintumėte, jog gavote bandomąjį el. Laišką, ir tada galime pereiti prie rašymo scenarijaus, kuris atsiųs mums serverio informaciją.

    Rašyti el. Laiškų scenarijų

    Norėdami gauti kuo daugiau naudos iš mūsų scenarijaus, mes jį užrašysime „PowerShell“. Atidarykite „Windows PowerShell ISE“, įvesdami „powerhell_ise.exe“ į paleisties užklausą (Ctrl + R).

    „PowerShell ISE“ lango dešinėje pusėje galite nurodyti kiekvieną komandą, kurią „PowerShell“ gali vykdyti. Tai turėtų suteikti jums gerą pradžią kuriant jums reikalingą informaciją. Savo scenarijuje taip pat galite skambinti į trečiųjų šalių programas taip pat išleisti informaciją (pvz., „SendEmail“ yra trečiosios šalies programa, tačiau „PowerShell“ ir „cmd“ gali ją naudoti norėdami atlikti užduotis, kurių jie paprastai negali).

    Mūsų pavyzdinio scenarijaus atveju patikrinsime dabartinį „C“ disko naudojimą, parodyti šiuo metu veikiančius procesus ir parodyti visus failus, kurie šiuo metu yra bendrinami tinkle.

    # Patikrinkite standžiojo disko vietą

    echo "C: Disko naudojimas:"> C: SendEmail info.txt

    Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Pasirinkti objekto dydį, FreeSpace >> C: SendEmail info.txt

    # Sąrašas šiuo metu veikiančių procesų

    echo "Veikimo procesai:" >> C: SendEmail info.txt

    gauti procesą >> C: SendEmail info.txt

    # Sąrašas šiuo metu bendrinamų failų / aplankų

    echo "SMB akcijos:" >> C: SendEmail info.txt

    get-smbshare >> C: „E-mail“ info.txt

    # Siųsti el. Laišką

    C tipas: SendEmail info.txt | C: Siųsti laišką e-mail -f vartotojo [email protected] -t vartotojo [email protected] -s smtp.gmail.com:587 -xu vartotojo vardas -xp slaptažodis -u „Dienos serverio informacija“

    # Ištrinkite atliktą failą

    rm C: SendEmail info.txt

    Šiame scenarijuje pateikiama įvairi informacija į C: SendEmail info.txt, o tada dokumento tekstas išsiunčiamas mums, prieš jį ištrinant. Išsaugokite scenarijų ps1 failo plėtiniu („PowerShell“ failas).

    Baigę scenarijų paleiskite greitą testą iš „Run“ (paleisti) raginimo, kad įsitikintumėte, jog jis veikia tinkamai.

    Tiesiog naudokite powerhell komandą su a -failą argumentas ir nurodykite kelią į scenarijų.

    „powerhell -file“ c: „Email“ kasdien-email.ps1 “

    Patikrinkite el. Pašto dėžutę, kad įsitikintumėte, jog gavote el. Laišką, jei ne, peržiūrėkite sintaksės klaidas. Štai ką sukurtas el. Laiškas iš mūsų pavyzdinio scenarijaus atrodo taip:

    Jūs galite žaisti su formatavimu (pvz., Atšaukti tuščias eilutes tarp teksto), kad būtų rodomas geresnis jūsų prietaise, arba dar geriau, galite naudoti trečiosios šalies programą, kuri perduos reikiamą informaciją įskaitomiau nei „Windows“ ( scenarijų procesas vis dar bus tas pats).

    Sukūrę scenarijus, galite naudoti „Windows Task Scheduler“, kad jį automatizuotumėte. Atidarykite meniu „Windows“ užduočių planuoklį.

    Atidarius užduočių planavimo priemonę, pasirinkite Veiksmas> Sukurti pagrindinę užduotį.

    Pavadinkite šią užduotį kaip „Dienos el. Pašto scenarijus“ ir spustelėkite kitą. Kitame ekrane pasirinkite dažnį, kuriuo norėtumėte, kad jūsų el. Tada pasirinkite laiką, kurį norite paleisti scenarijų, ir paspauskite kitą.

    Dabar turėtumėte būti vedlio „Veiksmo“ dalyje, pasirinkite „Pradėti programą“ ir įvesti tą patį tekstą, kurį anksčiau įvedėte į „Run“ užklausą, kad išbandytume mūsų scenarijų.

    Paspauskite kitą ir tada spustelėkite „Taip“ šiame lange:

    Paskutiniame meniu spustelėkite Baigti ir baigsite automatinius el. Laiškus.