Úvodná » ako » Ako automaticky generovať a zasielať štatistiky počítača

    Ako automaticky generovať a zasielať štatistiky počítača

    Je dôležité skontrolovať rôzne denné údaje a štatistiky na vašom serveri každý deň, ale robí to zdĺhavé. Nebolo by príjemné prijímať jeden e-mail so všetkými dôležitosťami každý deň, takže sa ani nemusíte dostať na server, aby ste si overili problémy? Táto príručka vám ukáže, ako nakonfigurovať automatické e-maily v systéme Linux a Windows.

    Budeme to zvlášť pokrývať pre Ubuntu a Windows 8.1, pričom Gmail bude používaný ako e-mailový server, z ktorého je posielaná pošta. Ak máte inú verziu systému Linux alebo Windows, alebo radšej používate inú e-mailovú službu, mali by byť tieto pokyny ľahko prispôsobiteľné.

    Automatizované e-maily v systéme Linux

    Na dosiahnutie tohto cieľa budeme používať dva rôzne balíky, ssmtp a mailutils, a preto ich nainštalujte nasledujúcim príkazom:

    $ sudo apt-get nainštalovať ssmtp mailutils

    Akonáhle sú tieto nainštalované, musíme vykonať nejaké zmeny v konfiguračnom súbore SSMTP:

    $ sudo vi /etc/ssmtp/ssmtp.conf

    Upravte súbor s týmito zmenami (je isté, že môžete vymazať celý text v súbore a skopírovať / prilepiť tieto nastavenia, ak chcete):

    # Táto adresa dostane e-maily, preto zadajte svoj e-mail tu, ak ich chcete prijať.

    [email protected]

    # Tu zadajte emailový server (nechajte, ako keby ste používali službu Gmail).

    mailhub = smtp.gmail.com: 587

    # Názov domény, z ktorého bude pošta pochádzať.

    rewriteDomain = gmail.com

    # E-mailová adresa, z ktorej majú byť tieto e-maily.

    [email protected]

    # Nastavenia SSL / TLS, ktoré sa vyžadujú pre službu Gmail a väčšinu iných poštových serverov.

    UseTLS = Yes

    UseSTARTTLS = Yes

    # Užívateľské meno a heslo do účtu Gmail.

    Authuser = užívateľské meno

    AuthPass = heslo

    # Povoliť možnosť zadania adresy od inej ako vyššie uvedenej.

    FromLineOverride = yes

    Keď dokončíte úpravu súboru, budete chcieť zmeniť povolenia, pretože vaše heslo v službe Gmail je uložené vo voľnom texte.

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

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

    Vždy je to väčšia bezpečnosť, aby sa root používateľovi súboru stal, ale potom by sme museli v našom skripte použiť príkaz sudo a vyžiadali by sme si heslo, čím by sme porazili účel automatizácie celého procesu.

    Ak používate zdieľaný server a obávate sa, že vaše heslo bude uložené v bežnom texte a bude čitateľné koreňom, vytvorte si účet Gmail alebo použite e-mailový server, ktorý na prvom mieste nevyžaduje žiadny typ autentifikácie.

    Aby ste sa uistili, že je všetko správne nakonfigurované, skúsme skúšobný e-mail:

    $ echo "Testovanie" mailu "Testovanie nastavenia pošty" [email protected]

    Testovanie bude v tele e-mailu a predmet bude "Testovanie nastavenia pošty". Skontrolujte svoj e-mail, aby ste sa uistili, že ste ho dostali.

    Písanie skriptu pre e-maily

    Teraz, keď sme schopní odoslať e-maily z príkazového riadku, napíšeme skript, ktorý nám pošle základné informácie o našom systéme.

    #! / Bin / bash

    # Skontrolujte miesto na pevnom disku

    echo "miesto na pevnom disku:"> /home/geek/email.txt

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

    # Zoznam používateľov, ktorí sú prihlásení

    echo "Aktuálne prihlásení používatelia:" >> /home/geek/email.txt

    kto >> /home/geek/email.txt

    # Zoznam aktuálne bežiacich procesov

    echo "Spúšťacie procesy:" >> /home/geek/email.txt

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

    # Odoslať e-mail

    cat /home/geek/email.txt mailov "Denné informácie o serveri" [email protected]

    # Odstráňte súbor, ktorý sme vytvorili

    rm /home/geek/email.txt

    Je zrejmé, že môžete získať oveľa podrobnejšie informácie o vašom skripte a dokonca aj formátovanie trochu lepšie, ale to je to, čo výstup vyzerá v našom e-maile:

    Teraz, keď je skript napísaný a testovaný, môžeme použiť cron na jeho automatické vykonávanie v rovnaký čas každý deň. V tomto príklade budeme nakonfigurovať e-mail, ktorý bude zasielaný každé ráno o 2:00 ráno, aby sme mohli prejsť údaje neskôr v ten deň.

    $ crontab -e

    Pre e-maily z 2:00 AM pridajte:

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

    Napísali sme celý článok o súboroch crontab, ak potrebujete ďalšiu pomoc s touto časťou.

    Automatizované e - maily vo Windows

    Odosielanie e-mailov na príkazovom riadku je možné prostredníctvom služby PowerShell, ale zistili sme, že implementácia tejto funkcie je oveľa jednoduchšia s aplikáciami tretích strán, najmä pri používaní služby Gmail. SendEmail je bezplatný program dostupný pre systém Windows, ktorý integruje Windows Plánovač úloh a Gmail. Kliknutím na vyššie uvedený odkaz si stiahnete najnovšiu kópiu a uistite sa, že vyberiete verziu podporovanú TLS.

    Akonáhle ste si stiahli SendEmail, extrahujte súbor zip a umiestnite obsah niekam, kde si ich môžete uložiť tak dlho, ako plánujete posielať automatizované e-maily. V tomto príklade práve ukladáme program do C: \ SendEmail

    Vyskúšajme SendEmail, aby sme si rýchlo uvedomili, ako to funguje. Otvorte príkazový riadok napísaním cmd do ponuky Štart alebo Spustiť (Ctrl + R).

    Ak je príkazový riadok otvorený, použite príkaz zmeniť katalóg a prejdite na miesto uloženia súborov SendEmail.

    cd C: \ SendEmail

    Teraz môžeme skúsiť odoslať testovací e-mail s nasledujúcim príkazom:

    sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu používateľské meno -xp heslo -u "Testovať predmet e-mailu" -m "Toto je testovací e-mail."

    Je zrejmé, že pred spustením príkazu nahraďte "používateľské meno" a "heslo" s povereniami vášho účtu.

    Tu je to, čo vyššie uvedený príkaz skutočne robí:

    poslať email spustí program.

    -F - z adresy

    -T - adresovať

    -s - SMTP server

    -xu - používateľské meno účtu

    -xp - heslo účtu

    -u - predmet emailu

    -m - text tela e-mailu

    Skontrolujte svoju doručenú poštu, aby ste sa uistili, že ste dostali testovací e-mail a potom môžeme pokračovať v písaní skriptu, ktorý nám pošle informácie o serveri.

    Písanie skriptu pre e-maily

    Ak chcete čo najviac využiť náš skript, napíšeme ho na PowerShell. Otvorte systém Windows PowerShell ISE zadaním príkazu powershell_ise.exe do príkazu Spustiť (Ctrl + R).

    Na pravej strane okna PowerShell ISE môžete zadať každý príkaz, ktorý je schopný vykonať PowerShell. To by malo dať dobrý štart pri vytváraní typov informácií, ktoré potrebujete nahlásiť. Vo svojom skripte môžete tiež zavolať na programy tretích strán, aby mohli zobrazovať aj informácie (t. J. SendEmail je aplikácia tretej strany, ale PowerShell a cmd ju môžu použiť na splnenie úloh, ktoré normálne nemôžu).

    V našom príklade skriptu skontrolujeme aktuálne využitie disku disku C, zobrazíme aktuálne bežiace procesy a zobrazíme všetky súbory, ktoré sú v súčasnosti zdieľané v sieti.

    # Skontrolujte miesto na pevnom disku

    echo "C: Použitie jednotky:"> C: \ SendEmail \ info.txt

    Get-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: "" Vyberte veľkosť objektu, FreeSpace >> C: \ SendEmail \ info.txt

    # Zoznam aktuálne bežiacich procesov

    echo "Spúšťacie procesy:" >> C: \ SendEmail \ info.txt

    get-process >> C: \ SendEmail \ info.txt

    # Zoznam aktuálne zdieľaných súborov / priečinkov

    echo "Zdieľané SMB:" >> C: \ SendEmail \ info.txt

    get-smbshare >> C: \ Poslať e-mail \ info.txt

    # Odoslať e-mail

    napíšte C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp heslo -u "Informácie o dennom serveri"

    # Odstráňte súbor, ktorý sme vytvorili

    rm C: \ SendEmail \ info.txt

    V tomto skripte sa do C: \ SendEmail \ info.txt zadávajú rôzne informácie a potom sa text v tomto dokumente odošle e-mailom predtým, ako sa odstráni. Uložte skript pomocou prípony súboru ps1 (súbor PowerShell).

    Po dokončení skriptu spustite rýchly test z príkazu Spustiť, aby ste sa uistili, že funguje správne.

    Stačí použiť PowerShell príkaz s -súbor argument a zadajte cestu k vášmu skriptu.

    powershell - súbor "c: \ SendEmail \ daily-email.ps1"

    Skontrolujte svoju doručenú poštu, aby ste sa uistili, že ste dostali e-mail - ak nie, pozrite skript na chyby syntaxe. Tu je generovaný e-mail z nášho príkladového skriptu:

    Môžete si prehrať formátovanie (napríklad opakovanie prázdnych riadkov medzi textom), aby sa zobrazilo na vašom zariadení lepšie, alebo ešte lepšie môžete používať program tretej strany, ktorý poskytne potrebné informácie v čitateľnejšom formáte ako Windows ( skriptovací proces bude stále rovnaký).

    Akonáhle ste v skripte vyriešili krivky, môžete ho automatizovať pomocou Plánovača úloh systému Windows. Otvorte Plánovač úloh systému Windows pomocou ponuky Štart.

    Pri otvorení Plánovača úloh vyberte položku Akcia> Vytvoriť základnú úlohu.

    Pomenujte túto úlohu niečo ako "Daily email script" a kliknite na tlačidlo Next. Na ďalšej obrazovke vyberte frekvenciu, s ktorou chcete spustiť svoj emailový skript, pravdepodobne denne. Potom vyberte čas, ktorý chcete spúšťať, a stlačte ďalší.

    Teraz by ste mali byť v časti "Akcia" sprievodcu, vyberte "Spustiť program" a zadajte ten istý text, ktorý sme zadali do spúšťacej výzvy predtým, aby sme testovali náš skript.

    Stlačte ďalšiu položku a potom kliknite na tlačidlo Áno v tomto okne:

    V poslednom menu kliknite na tlačidlo Dokončiť a dokončíte plánovanie automatických e-mailov.