Me käsitleme seda konkreetselt Ubuntu ja Windows 8.1 puhul, Gmaili kasutatakse e-posti serverina, kuhu posti saadeti. Kui teil on Linuxi või Windowsi teine versioon või soovite kasutada mõnda muud e-posti teenust, peaks siin toodud juhised olema hõlpsasti kohandatavad.
Automaatsed meilid Linuxis
Selle saavutamiseks kasutame kahte erinevat paketti, ssmtp ja mailutils, nii et installige need mõlemad järgmise käsuga:
$ sudo apt-get install ssmtp mailutils
Kui need on installitud, peame SSMTP-i konfiguratsioonifaili muutma:
$ sudo vi /etc/ssmtp/ssmtp.conf
Muutke faili nende muudatustega (turvaline on lihtsalt kustutada kogu faili tekst ja kopeerida / kleepida need sätted, kui soovite):
# 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
Kui olete faili redigeerinud, soovite muuta õigusi, kuna teie Gmaili parool salvestatakse tavalises tekstis.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Faile omaniku administraatori loomine on alati turvalisem, kuid siis peaksime kasutama oma skripti sudo käsklust ja see viiks meid parooli kätte, seades sellega üle kogu selle protsessi automatiseerimise eesmärgi.
Kui kasutate jagatud serverit ja olete mures selle pärast, et parool on salvestatud tavalises tekstis ja seda saab lugeda administraatoriga, looge kasutatav Gmaili konto või kasutage e-posti serverit, mis ei vaja mingit tüüpi autentimist.
Veendumaks, et kõik oleks õigesti konfigureeritud, proovime proovilehte:
$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]
"Katsetamine" toimub e-kirja keres ja teemaks on "Posti seadistamise testimine". Kontrollige oma e-posti aadressi veendumaks, et olete selle saanud.
Scripti kirjutamine e-kirjadele
Nüüd, kui me saame käsurealt e-kirju saata, kirjutame skripti, mis saadab meile meie süsteemi põhiteabe.
#!/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
Ilmselt võite oma skriptiga veelgi sügavamalt ette võtta ja isegi muuta vorminduse natuke nalja, kuid see on see, mida väljund näeb välja meie e-posti aadressil:
$ crontab -e
Kell 2:00 e-kirjad lisage:
0 2 * * * /home/geek/script.sh
Oleme kirjutanud kogu artikli crontab-failide kohta, kui vajate selle osaga rohkem abi.
Automatiseeritud meilid Windowsis
Kirju saatmine käsurealt on võimalik PowerShelli kaudu, kuid oleme avastanud, et selle funktsiooni rakendamine on kolmandate osapoolte rakendustega palju lihtsam, eriti Gmaili kasutamisel. SendEmail on Windowsile saadaval tasuta programm, mis muudab integratsiooni Windows Task Scheduleriga ja Gmailiga. Viimase koopia allalaadimiseks klõpsake ülaloleval lingil ja veenduge, et olete TLS-toega versiooni haaranud.
Kui olete Allalaadinud SendEmaili, ekstraktige ZIP-fail ja asetage sisu kusagilt, et saate neid salvestada nii kaua kui kavatsete automaatseid e-kirju saata. Selles näites me lihtsalt kavatseme salvestada programmi C: SendEmail
Kontrollime SendEmaili, et saada kiiret tunde, kuidas see toimib. Avage käsuviip, sisestage cmd menüüsse Start või Run (Ctrl + R).
cd C:SendEmail
Nüüd saame proovida saata katsemaili järgmise käsuga:
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.'
Ilmselt asendage "kasutajanimi" ja "parool" oma konto mandaadiga enne käsu täitmist.
Siin on käsk eespool tegelikult:
sendEmail
käivitab programmi.
-f
- aadressilt
-t
- addresseerima
-s
- SMTP server
-xu
- konto kasutajanimi
-xp
- konto parool
-u
- email teemat
-m
- e-kirja tekst
Kontrollige oma postkasti, et veenduge, et olete saanud test-e-kirja, ja siis saame edasi liikuda, et kirjutada skript, mis saadab meile meile serveriteabe.
Scripti kirjutamine e-kirjadele
Meie skripti kõige paremaks ärakasutamiseks kirjutame selle PowerShellile. Avage Windows PowerShell ISE, kirjutades powershell_ise.exe käsku Käivita (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
Selles skriptis edastatakse mitmesugune teave C: SendEmail info.txt-ile ja selle dokumendi tekst saadetakse meile enne selle kustutamist meile. Salvestage oma skript faililaiendiga ps1 (PowerShell-fail).
Kui teie skript on valmis, käivitage kiirkäsk Run käsu abil, et veenduda, et see töötab korralikult.
Kasutage lihtsalt
powershell
käsk a
-file
argument ja määrake oma skripti tee.
powershell -file 'c:SendEmaildaily-email.ps1'
Kui olete stsenaariumi kinkide välja töötanud, saate selle automatiseerimiseks kasutada Windows Task Schedulerit. Avage Windowsi tööülesannete ajakava menüü Start kaudu.
Nüüd peaksite olema nõustaja osa "Tegevus", valige käsk "Programmi käivitamine" ja sisestage sama skripti testimiseks sisestatud tekst, mille me sisestasime Run käsureale.