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
Budeme používať dva rôzne balíky na dosiahnutie tohto cieľa, ssmtp a mailutils, takže ich nainštalujte nasledujúcim príkazom:
$ sudo apt-get install ssmtp mailutils
Po nainštalovaní týchto zariadení je potrebné vykonať určité 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):
# This address will receive the emails, so enter your own email here if you want to receive them.
# Specify the email server here (leave as is if you’re using Gmail).
mailhub=smtp.gmail.com:587
# The domain name that the mail will come from.
rewriteDomain=gmail.com
# The email address that these emails should be from.
# SSL/TLS settings, required for Gmail and most other mail servers.
UseTLS=Yes
UseSTARTTLS=Yes
# The username and password to your Gmail account.
AuthUser=username
AuthPass=password
# Allow the ability to specify a from address different than the one above.
FromLineOverride=yes
Keď dokončíte úpravu súboru, budete chcieť zmeniť povolenia, pretože vaše heslo služby Gmail je uložené v otvorenom texte.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Vždy je väčšia bezpečnosť, aby sme vytvorili koreň vlastníka súboru, 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 otvorenom 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' | mail -s 'Testing mail setup' [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 skriptu pre e-maily
Teraz, keď môžeme poslať 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
# Check hard drive space
echo 'Hard drive space:' > /home/geek/email.txt
df -h >> /home/geek/email.txt
# List the users that are logged in
echo 'Users currently logged in:' >> /home/geek/email.txt
who >> /home/geek/email.txt
# List currently running processes
echo 'Running processes:' >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Send the email
cat /home/geek/email.txt | mail -s 'Daily server information' [email protected]
# Delete the file we created
rm /home/geek/email.txt
Je zrejmé, že môžete získať oveľa podrobnejšie s vašim skriptom a dokonca aj formátovanie trochu lepšie, ale to je to, čo výstup vyzerá v našom e-mailu:
$ 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 v systéme Windows
Odosielanie e-mailov na príkazovom riadku je možné prostredníctvom nástroja 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 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ú verziou TLS.
Po dokončení sťahovania služby SendEmail extrahujte súbor zip a umiestnite obsah niekde tak, aby ste si ho mohli uložiť tak dlho, ako plánujete odoslať automatizované e-maily. V tomto príklade práve ukladáme program do adresára C: SendEmail
Vyskúšajme SendEmail, aby sme si rýchlo uvedomili, ako to funguje. Otvorte príkazový riadok zadaním príkazu cmd do ponuky Štart alebo Spustiť (Ctrl + R).
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 -xp password -u 'Test email subject' -m 'This is a test email.'
Samozrejme, pred spustením príkazu nahraďte "používateľské meno" a "heslo" s povereniami vášho účtu.
Tu je príkaz uvedený vyššie:
sendEmail
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 do programu PowerShell. Otvorte systém Windows PowerShell ISE zadaním príkazu powershell_ise.exe do príkazu Spustiť (Ctrl + R).
# Check hard drive space
echo 'C: Drive Usage:' > C:SendEmailinfo.txt
Get-WmiObject win32_LogicalDisk -Filter 'DeviceID='C:'' | Select-Object Size,FreeSpace >> C:SendEmailinfo.txt
# List currently running processes
echo 'Running processes:' >> C:SendEmailinfo.txt
get-process >> C:SendEmailinfo.txt
# List the files/folders currently being shared
echo 'SMB shares:' >> C:SendEmailinfo.txt
get-smbshare >> C:SendEmailinfo.txt
# Send the email
type C:SendEmailinfo.txt | C:SendEmailsendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu username -xp password -u 'Daily server info'
# Delete the file we made
rm C:SendEmailinfo.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
-file
argument a zadajte cestu k vášmu skriptu.
powershell -file 'c:SendEmaildaily-email.ps1'
Akonáhle ste v skripte vyriešili krivky, môžete ho použiť na automatizáciu pomocou Plánovača úloh systému Windows. Otvorte Plánovač úloh systému Windows pomocou ponuky Štart.
Teraz by ste mali byť v časti "Akcia" sprievodcu, vyberte položku "Spustiť program" a zadajte ten istý text, ktorý sme zadali do príkazu Spustiť skôr, aby sme skenovali náš skript.