Domovská » jak » Jak automaticky generovat a zasílat statistiky počítače

    Jak automaticky generovat a zasílat statistiky počítače

    Je důležité každodenně kontrolovat různé data a statistiky denníků na vašem serveru, ale roste to nudné. Nebylo by hezké dostávat jediný e-mail se všemi důležitými informacemi každý den, takže se ani nemusíte dostat na server, aby zjistil problémy? Tato příručka vám ukáže, jak nakonfigurovat automatizované e-maily v systémech Linux a Windows.

    Budeme to zvlášť pokrývat u Ubuntu a Windows 8.1, přičemž Gmail bude používán jako e-mailový server, ze kterého je posílána pošta. Pokud máte jinou verzi systému Linux nebo Windows nebo preferujete jinou e-mailovou službu, měly by být zde pokyny snadno přizpůsobitelné.

    Automatizované emaily v systému Linux

    Použijeme dva různé balíčky k tomu, ssmtp a mailutils, takže je nainstalujte oběma následujícími příkazy:

    $ sudo apt-get nainstalovat ssmtp mailutils

    Jakmile jsou nainstalovány, je třeba provést některé změny konfiguračního souboru SSMTP:

    $ sudo vi /etc/ssmtp/ssmtp.conf

    Upravte soubor s těmito změnami (v případě, že chcete vymazat všechen text v souboru a pokud chcete, zkopírujte / vložte tato nastavení):

    # Tato adresa obdrží e-maily, proto zadejte svůj e-mail zde, chcete-li je přijmout.

    root@[email protected]

    # Zde zadejte e-mailový server (nechte, jako kdybyste používali službu Gmail).

    mailhub = smtp.gmail.com: 587

    # Jméno domény, ze které bude pošta pocházet.

    rewriteDomain = gmail.com

    # E-mailová adresa, ze které by tyto e-maily měly být.

    hostname@[email protected]

    # Nastavení SSL / TLS, které jsou potřebné pro službu Gmail a většinu ostatních poštovních serverů.

    UseTLS = Ano

    PoužítSTARTTLS = Ano

    # Uživatelské jméno a heslo do účtu Gmail.

    AuthUser = uživatelské jméno

    AuthPass = heslo

    # Povolit možnost zadat jinou adresu než je adresa výše.

    FromLineOverride = ano

    Jakmile dokončíte úpravu souboru, budete chtít změnit oprávnění, protože vaše heslo služby Gmail je uloženo v otevřeném textu.

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

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

    Vždy je bezpečnější kořenit vlastníka souboru, ale pak bychom museli v našem skriptu použít příkaz sudo a vybídli bychom heslo, čímž bychom porazili účel automatizace celého procesu.

    Pokud používáte sdílený server a obáváte se, že vaše heslo bude uloženo v otevřeném textu a bude čitelné od kořenu, vytvořte si účet Gmail pro odkládání dat nebo použijte e-mailový server, který na prvním místě nevyžaduje žádný typ ověřování.

    Chcete-li se ujistit, že je vše správně nakonfigurováno, vyzkoušejte zkušební e-mail:

    $ echo "Testování" mailů "Testování nastavení pošty" [email protected]

    Testování bude v těle e-mailu a předmětem bude Testování nastavení pošty. Zkontrolujte e-mail a ujistěte se, že jste ji obdrželi.

    Psaní skriptu pro e-maily

    Nyní, když jsme schopni odeslat e-maily z příkazového řádku, napište skript, který nám pošle základní informace o našem systému.

    #! / bin / bash

    # Zkontrolujte prostor na pevném disku

    echo "Místo na pevném disku:"> /home/geek/email.txt

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

    # Seznam uživatelů, kteří jsou přihlášeni

    echo "Aktuálně přihlášeni uživatelé:" >> /home/geek/email.txt

    kdo >> /home/geek/email.txt

    # Seznam aktuálně spuštěných procesů

    echo "Spouštěcí procesy:" >> /home/geek/email.txt

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

    # Pošlete e-mail

    kočka /home/geek/email.txt | mailů "Denní informace o serveru" [email protected]

    # Odstraňte soubor, který jsme vytvořili

    rm /home/geek/email.txt

    Je zřejmé, že se svým skriptem můžete dostat mnohem hlouběji a dokonce i formátování trochu hezčí, ale vypadá to, jak vypadá výstup v našem e-mailu:

    Nyní, když je scénář napsán a testován, můžeme použít cron k jeho automatickému spuštění každý den ve stejnou dobu. V tomto příkladu budeme nakonfigurovat e-maily, které budou zasílány každé ráno ve 2:00 ráno, takže můžeme projít data později v ten den.

    $ crontab -e

    Pro emaily ve 2:00 AM přidejte:

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

    Napsali jsme celý článek o souborech crontab, pokud potřebujete další pomoc s touto částí.

    Automatizované e-maily ve Windows

    Odesílání e-mailů na příkazovém řádku je možné pomocí služby PowerShell, ale zjistilo se, že implementace této funkce je mnohem jednodušší u aplikací třetích stran, zejména při používání služby Gmail. SendEmail je bezplatný program dostupný pro Windows, díky němuž je integrace se systémem Windows Task Scheduler a Gmail vánkem. Klepnutím na výše uvedený odkaz stáhnete nejnovější kopii a ujistěte se, že jste chytili verzi podporovanou protokolem TLS.

    Jakmile si aplikaci SendEmail stáhnete, extrahujte soubor zip a vložte obsah někde, kde je můžete uložit tak dlouho, dokud plánujete odeslat automatizované e-maily. V tomto příkladu uložíme program do C: \ SendEmail

    Vyzkoušejte SendEmail, abyste získali pocit, jak to funguje. Otevřete příkazový řádek zadáním příkazu cmd do nabídky Start nebo Run (Ctrl + R).

    Otevřete příkazový řádek a použijte příkaz změnit adresář a přejděte na místo uložení souborů SendEmail.

    cd C: \ SendEmail

    Nyní můžeme zkusit odeslat zkušební e-mail s následujícím příkazem:

    sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu uživatelské jméno -xp heslo -u "Testovat předmět e-mailu" -m "Toto je testovací e-mail."

    Je zřejmé, že před spuštěním příkazu nahraďte "uživatelské jméno" a "heslo" s pověřeními účtu.

    Zde je to, co výše uvedený příkaz skutečně dělá:

    poslat e-mailem spustí program.

    -F - z adresy

    -t - na adresu

    -s - SMTP server

    -xu - uživatelské jméno účtu

    -xp - heslo k účtu

    -u - předmět emailu

    -m - text těla e-mailu

    Zkontrolujte složku doručené pošty, abyste se ujistili, že jste obdrželi zkušební e-mail, a pak můžeme pokračovat v psaní skriptu, který nám pošle informace o serveru.

    Psaní skriptu pro e-maily

    Chcete-li co nejlépe využít náš skript, napíšeme to pro PowerShell. Otevřete okno Windows PowerShell ISE zadáním příkazu powershell_ise.exe do příkazu Spustit (Ctrl + R).

    Na pravé straně okna PowerShell ISE můžete zobrazit všechny příkazy, které je PowerShell schopen provést. To by mělo dát dobrý začátek při vytváření typů informací, které potřebujete nahlásit. Ve vašem skriptu můžete také volat na programy třetích stran, aby mohly vygenerovat také informace (tj. SendEmail je aplikace třetí strany, ale PowerShell a cmd ji mohou použít k provádění úkolů, které obvykle nemohou).

    Pro náš příklad skript zkontrolujeme aktuální využití disku jednotky C, zobrazíme aktuálně spuštěné procesy a zobrazíme všechny soubory, které jsou v současnosti sdíleny v síti.

    # Zkontrolujte prostor na pevném disku

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

    Získat-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: "" | Vyberte velikost objektu, FreeSpace >> C: \ SendEmail \ info.txt

    # Seznam aktuálně spuštěných procesů

    echo "Běžící procesy:" >> C: \ SendEmail \ info.txt

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

    # Seznam aktuálně sdílených souborů / složek

    echo "Sdílení SMB:" >> C: \ SendEmail \ info.txt

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

    # Pošlete e-mail

    zadejte C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu uživatelské jméno -xp heslo -u "Denní informace o serveru"

    # Vymažte soubor, který jsme vytvořili

    rm C: \ SendEmail \ info.txt

    V tomto skriptu jsou do C: \ SendEmail \ info.txt vyvedeny různé informace a před tím, než se zmizí, je text v tomto dokumentu odeslán emailem. Uložte skript pomocí příponu souboru ps1 (soubor PowerShell).

    Po dokončení skriptu spusťte rychlý test z příkazu Spustit, abyste se ujistili, že funguje správně.

    Stačí použít powerhell příkaz s -soubor argument a určete cestu ke skriptu.

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

    Zkontrolujte doručenou poštu a ujistěte se, že jste obdrželi e-mail - pokud ne, podívejte se na skript pro chyby syntaxe. Zde je příklad vygenerovaného e-mailu z příkladu skriptu:

    Můžete přehrávat formátování (například opakování prázdných řádků mezi textem), aby se zařízení zobrazovalo lépe, nebo ještě lépe, můžete použít program třetí strany, který bude zobrazovat potřebné informace ve formátu, který je čitelnější než systém Windows ( skriptovací proces bude stále stejný).

    Poté, co jste ve skriptu vyřešili překážky, můžete jej použít k automatickému použití programu Plánovač úloh systému Windows. Otevřete program Plánovač úloh systému Windows pomocí nabídky Start.

    Otevřete Plánovač úloh, vyberte možnost Akce> Vytvořit základní úlohu.

    Název tohoto úkolu pojmenujte "Denní e-mailový skript" a klikněte na tlačítko Další. Na další obrazovce vyberte frekvenci, se kterou chcete spouštět váš emailový skript, pravděpodobně denně. Poté vyberte čas, který chcete spouštět, a stiskněte další.

    Nyní byste měli být v části "Akce" průvodce, zvolte "Spustit program" a zadejte stejný text, který jsme zadali do příkazu Spustit dříve, abychom testovali náš skript.

    Stiskněte další a v tomto okně klepněte na tlačítko Ano:

    V poslední nabídce klikněte na tlačítko Dokončit a dokončíte plánování automatických e-mailů.