11Jul

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

click fraud protection

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

Bude se to konkrétně zabývat pro 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é e-maily v systému Linux

Budeme používat dva různé balíčky k tomu, ssmtp a mailutils, takže nainstalujte oba z nich pomocí následujícího příkazu:

$ sudo apt-get install ssmtp mailutils

Poté, co jsou nainstalovány, potřebujemeprovést některé změny v konfiguračním souboru SSMTP:

$ sudo vi /etc/ssmtp/ ssmtp.conf

Upravte soubor s těmito změnami( je to bezpečné jen vymazat celý text v souboru a kopírovat / vložit tato nastavení, pokud chcete):

instagram viewer

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

root@[email protected]

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

mailhub = smtp.gmail.com: 587

# Název domény, ze kterého bude pošta pocházet.

rewriteDomain = gmail.com

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

[email protected]

# Nastavení SSL / TLS, požadované pro 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

# Umožňuje zadat adresu z jiné než výše uvedené adresy.

FromLineOverride = ano

Když 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

Je vždy bezpečnější kořenit vlastníka souboru, ale pak bychom museli použít příkaz sudo v našem skriptu a to bynás vyzve k zadání hesla, čímž porazíme úč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é pomocí kořenového adresáře, vytvořte si účet Gmail pro výplach nebo použijte e-mailový server, který nevyžaduje žádný typ ověřování.

Chcete-li se ujistit, že je vše nakonfigurováno správně, 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, abyste se ujistili, ž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 místo na pevném disku

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

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

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

echo "Uživatelé jsou momentálně přihlášeni:" & gt; & gt;/home/geek/ email.txt

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

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

echo "Běžící procesy:" & gt; & gt;/home/geek/ email.txt

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

# Poslat e-mail

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

# Odstranění souboru, který jsme vytvořili

rm /home/geek/ email.txt

Je zřejmé, že můžete s vaším skriptem dostat mnohem podrobněji a dokonce i formátování trochu hezčí, aleto vypadá jako v našem e-mailu:

Nyní, když je skript 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, abychom mohli projít údaje později v ten den.

$ crontab -e

Pro e-maily 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 v systému Windows

Odesílání e-mailů na příkazovém řádku je možné pomocí nástroje 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, který dělá integraci 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.

Po stažení programu SendEmail extrahujte soubor zip a umístěte obsah někam, kde je můžete uložit tak dlouho, dokud plánujete odeslat automatizované e-maily. V tomto příkladu budeme právě ukládat program do adresáře 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 pomocí příkazu změnit adresář přejděte na místo uložení souborů SendEmail.

cd C: \ SendEmail

Nyní můžeme zkusit poslat testovací e-mail s následujícím příkazem:

sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xpheslo -u "Testujte 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.

Níže je uveden výše uvedený příkaz:

sendEmail spustí program.

-f - z adresy

-t - na adresu

-s - SMTP server

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

-xp - heslo účtu

-u - předmět e-mailu

-m - text těla e-mailu

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 získat co nejvíce z našeho skriptu, napíšeme jej pro PowerShell. Otevřete systém Windows PowerShell ISE zadáním příkazu powershell_ise.exe do příkazu Spustit( Ctrl + R).

Na pravé straně okna ISE PowerShell můžete zobrazit všechny příkazy, které je PowerShell schopen provést. To by mělo dát dobrý začátek na vytváření typů informací, které potřebujete nahlásit. Ve vašem skriptu můžete také volat 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é normálně nemohou).

V našem příkladovém skriptu 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 místo na pevném disku

echo "C: Použití jednotky:" & gt;C: \ SendEmail \ info.txt

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

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

echo "Spouštění procesů:" & gt; & gt;C: \ SendEmail \ info.txt

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

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

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

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

# Odeslat e-mail

typ 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"

# Odstranění souboru jsme vytvořili

rm C: \ SendEmail \ info.txt

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

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

Použijte příkaz powerhell pomocí argumentu -file a zadejte cestu ke skriptu.

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

Zkontrolujte, zda jste v doručené poště nezjistili, že jste obdrželi e-mail - pokud ne, podívejte se na skript pro chyby syntaxe. Zde je vygenerovaný e-mail z našeho příkladu skriptu:

Můžete si přehrát formátování( například opakování prázdných řádků mezi textem), aby se zobrazoval lépe na vašem zařízení, nebo ještě lépe, můžete použít program třetí strany, kterývýstup potřebných informací v čitelnějším formátu než systém Windows( proces skriptování bude stále stejný).

Poté, co jste ve svém skriptu vyřešili sklony, můžete ho 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.

Při otevření Plánovače úloh vyberte možnost Akce & gt;Vytvořte základní úkol.

Název tohoto úkolu je něco jako "Denní e-mailový skript" a klikněte na 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 otestovali náš skript.

Stiskněte další a poté v tomto okně stiskněte tlačítko Ano:

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