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ť.
# 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.
# 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.