11Jul
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émoch Linux a Windows.
Bude sa to konkrétne zaoberať pre Ubuntu a Windows 8.1, pričom Gmail bude použitý 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
Budeme používať dva rôzne balíky na dosiahnutie tohto cieľa, ssmtp a mailutils, a preto ich nainštalujte nasledujúcim príkazom:
$ sudo apt-get install ssmtp mailutils
Akonáhle sú tieto nainštalované, potrebujemevykonajte nejaké zmeny v konfiguračnom súbore SSMTP:
$ sudo vi /etc/ssmtp/ ssmtp.conf
Upravte súbor s týmito zmenami( je to bezpečné len 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ť.
root@[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 pošta pochádza.
rewriteDomain = gmail.com
# E-mailová adresa, z ktorej majú byť tieto e-maily.
# Nastavenia SSL / TLS vyžadované pre Gmail a väčšinu iných poštových serverov.
UseTLS = Áno
PoužiťSTARTTLS = Áno
# Užívateľské meno a heslo do účtu Gmail.
AuthUser = používateľské meno
AuthPass = heslo
# Umožňuje určiť adresu 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 väčšia istota, aby sme spravili vlastníka súboru root, ale potom by sme museli v našom skripte použiť príkaz sudo.nás vyzve k zadaniu hesla, čím porazíme úč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ý nevyžaduje žiadny typ autentifikácie.
Aby ste sa uistili, že je všetko nakonfigurované správne, skúsme skúšobný e-mail:
$ echo "Testing" |mailu "Testovanie nastavenia pošty" [email protected]
Testovanie bude v tele e-mailu a predmetom bude "Testovanie nastavenia pošty". Skontrolujte svoj e-mail, aby ste sa uistili, že ste ho dostali.
Písanie skriptov pre e-maily
Teraz, keď sme schopní odoslať e-maily z príkazového riadku, napíšeme skript, ktorý nám zašle základné informácie o našom systéme.
#!/bin/ bash
# Skontrolujte miesto na pevnom disku
echo "Space na pevnom disku:" & gt;/home/geek/ email.txt
df -h & gt; & gt;/home/geek/ email.txt
# Zoznam užívateľov, ktorí sú prihlásení
echo "Aktuálne prihlásení používatelia:" & gt; & gt;/home/geek/ email.txt
who & gt; & gt;/home/geek/ email.txt
# Zoznam aktuálne spustených procesov
echo "Spúšťacie procesy:" & gt; & gt;/home/geek/ email.txt
ps -e & gt; & gt;/home/geek/ email.txt
# Pošlite e-mail
mačka /home/geek/ email.txt |mail -s "Denné informácie o serveri" [email protected]
# Odstránenie súboru, ktorý sme vytvorili
rm /home/geek/ email.txt
Je zrejmé, že môžete skompilovať svoj skript a dokonca urobiť formátovanie trochu hezšie, aleto 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ý sa bude posielať každé ráno o 2:00 hod., Aby sme mohli prejsť údaje neskôr v ten deň.
$ crontab -e
Pre 2:00 AM e-mailov, 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 v systéme Windows
Odosielanie e-mailov na príkazovom riadku je možné pomocou nástroja PowerShell, no 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 do Windows Plánovača úloh a Gmail. Kliknutím na vyššie uvedený odkaz si stiahnete najnovšiu kópiu a uistite sa, že vyberiete verziu podporovanú TLS.
Keď ste si stiahli SendEmail, extrahujte súbor zip a umiestnite obsah niekam, ktorý si môžete uložiť tak dlho, ako plánujete posielať automatizované e-maily. V tomto príklade práve ukladáme program do adresára C: \ SendEmail
Vyskúšajte SendEmail, aby ste si rýchlo uvedomili, ako to funguje. Otvorte príkazový riadok zadaním príkazu cmd do ponuky Štart alebo Spustiť( Ctrl + R).
Pri otvorenom príkazovom riadku použite príkaz Change directory, aby ste prešli 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 username -xpheslo -u "Test predmetu e-mailu" -m "Toto je testovací e-mail."
Je zrejmé, že pred vykonaním príkazu nahraďte "používateľské meno" a "heslo" s povereniami vášho účtu.
Tu je uvedený príkaz uvedený vyššie:
sendEmail spúšťa program.
-f - z adresy
-t - na adresu
-s - SMTP server
-xu - používateľské meno účtu
-xp - heslo účtu
-u - predmet e-mailu
-m - email text tela
Skontrolujte svoju schránku,získali sme testovací e-mail a potom môžeme prejsť na písanie skriptu, ktorý nám pošle informácie o serveri.
Písanie skriptov pre e-maily
Aby sme čo najviac využili náš skript, napíšeme to pre 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 poskytnúť dobrý štart pri vytváraní typov informácií, ktoré je potrebné nahlásiť.Vo svojom skripte môžete tiež zavolať na programy tretích strán, aby ste 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 na jednotke C, ukáže aktuálne bežiace procesy a zobrazí všetky súbory, ktoré sú v súčasnosti zdieľané v sieti.
# Skontrolujte miesto na pevnom disku
echo "C: Použitie jednotky:" & gt;C: \ Poslať e-mail \ info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID =" C: "" |Vyberte veľkosť objektu, FreeSpace & gt; & gt;C: \ SendEmail \ info.txt
# Zoznam aktuálne spustených procesov
echo "Running processes:" & gt; & gt;C: \ SendEmail \ info.txt
get-process & gt; & gt;C: \ SendEmail \ info.txt
# Zoznam aktuálne zdieľaných súborov / priečinkov
echo "Shares SMB:" & gt; & gt;C: \ SendEmail \ info.txt
get-smbshare & gt; & gt;C: \ SendEmail \ info.txt
# Pošlite e-mail
typ C: \ SendEmail \ info.txt |C: \ SendEmail \ sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp heslo -u "Denné informácie o serveri"
# Odstrániť súbor, ktorý sme vytvorili
rm C: \ SendEmail \ info.txt
V tomto skripte sa do C: \ SendEmail \ info.txt odosielajú 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.
Použite príkaz powershell s argumentom -file 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, prezrite skript na chyby syntaxe. Tu je to, čo vygenerovaný e-mail z nášho príkladového skriptu vyzerá takto:
Môžete si prehrať formátovanie( napríklad odrážať prázdne čiary medzi textom), aby sa zobrazilo na vašom zariadení lepšie, alebo ešte lepšie môžete použiť program tretej strany, ktorývýstup potrebných informácií v čitateľnejšom formáte ako Windows( proces skriptovania bude stále rovnaký).
Akonáhle ste v skripte rozpracovali skrutky, 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 & gt;Vytvorte základnú úlohu.
Označte túto úlohu niečo ako "Daily email script" a kliknite na tlačidlo Next. Na ďalšej obrazovke vyberte frekvenciu, s ktorou chcete spúšťať svoj e-mailový 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 skenovali náš skript.
Nasledujte ďalší krok a potom kliknite na tlačidlo Áno v tomto okne:
Kliknite na tlačidlo Dokončiť v poslednom menu a dokončíte plánovanie automatických e-mailov.