Kuidas arvutiandmeid automaatselt genereerida ja e-posti teel saata
Oluline on kontrollida iga päev oma serveri logi andmeid ja statistikat, kuid see kasvab tüütu. Kas ei oleks tore, et iga päev saabuvad kõik esiletõstetud kirjad ühe e-kirjaga, nii et teil ei ole vaja isegi serveri poole pöörduda probleemide kontrollimiseks? See juhend näitab teile, kuidas konfigureerida automatiseeritud e-kirju Linuxis ja Windowsis.
Me katame selle spetsiaalselt Ubuntu ja Windows 8.1 jaoks, kusjuures Gmaili kasutatakse e-posti serverina, millest kiri saadetakse. Kui teil on teine Linuxi või Windowsi versioon või eelistate kasutada mõnda muud e-posti teenust, peaksid siin toodud juhised olema kergesti kohandatavad.
Automatiseeritud kirjad Linuxis
Selle saavutamiseks kasutame kahte erinevat paketti: ssmtp ja mailutils, nii et installige mõlemad järgmise käsuga:
$ sudo apt-get installige ssmtp mailutils
Kui need on installitud, peame SSMTP konfiguratsioonifailis mõned muudatused tegema:
$ sudo vi /etc/ssmtp/ssmtp.conf
Redigeerige faili nende muudatustega (see on ohutu, et kustutate kogu faili faili ja kopeerige / kleepige need seaded, kui soovite):
# See aadress saab e-kirjad, nii et sisestage oma e-kiri, kui soovite neid vastu võtta.
# Määrake siin e-posti server (jätke see siis, kui kasutate Gmaili).
mailhub = smtp.gmail.com: 587
# Domeeninimi, millest kiri pärineb.
rewriteDomain = gmail.com
# E-posti aadress, millest need e-kirjad peaksid olema.
# SSL / TLS seaded, mis on vajalikud Gmaili ja enamiku teiste postiserverite jaoks.
UseTLS = Jah
UseSTARTTLS = Jah
# Gmaili konto kasutajanimi ja parool.
AuthUser = kasutajanimi
AuthPass = parool
# Võimaldab määrata aadressi, mis on erinev ülaltoodust.
FromLineOverride = jah
Kui olete faili redigeerimise lõpetanud, peate muutma õigusi, kuna teie Gmaili parool salvestatakse lihtsas tekstis.
$ sudo chmod 640 /etc/ssmtp/ssmtp.conf
$ sudo chown username.username /etc/ssmtp/ssmtp.conf
Faili omaniku juurutamine on alati turvalisem, kuid siis peaksime kasutama meie skriptis sudo käsku ja see viiks meid parooli andma, kaotades selle kogu protsessi automatiseerimise eesmärgi.
Kui kasutate jagatud serverit ja olete mures selle pärast, et parool salvestatakse tavalisse teksti ja loetavaks root, looge Gmaili konto või kasutage e-posti serverit, mis ei nõua mingit tüüpi autentimist..
Veendumaks, et kõik on õigesti konfigureeritud, proovime proovida e-posti:
$ echo "Testimine" | mail -s "Postituste testimine" [email protected]
"Testimine" on e-kirja põhiosas ja teema on "Postiseadete testimine". Kontrollige oma e-posti, et veenduda, et olete selle kätte saanud.
Kirjade kirjutamine e-kirjadele
Nüüd, kui meil on võimalik käsurealt e-kirju saata, kirjutage skript, mis saadab meile meie süsteemi kohta põhiteabe.
#! / bin / bash
# Kontrollige kõvaketta ruumi
echo "Kõvaketta ruum:"> /home/geek/email.txt
df -h >> / home/geek/email.txt
# Nimekiri kasutajatele, kes on sisse logitud
echo "Kasutajad on praegu sisse loginud:" >> /home/geek/email.txt
kes >> /home/geek/email.txt
# Loetlege praegu töötavad protsessid
echo "Jooksvad protsessid:" >> /home/geek/email.txt
ps -e >> /home/geek/email.txt
# Saada e-kiri
kass / home/geek/email.txt | mail -s "Igapäevane serveriteave" [email protected]
# Kustutage loodud fail
rm /home/geek/email.txt
Ilmselgelt saate oma skriptiga palju põhjalikuma ja isegi vormindamise natuke kenamaks, kuid see on see, mida väljund näeb välja meie e-posti aadressil:
Nüüd, kui skript on kirjutatud ja testitud, saame kasutada croni selle automaatseks täitmiseks iga päev samal ajal. Selles näites konfigureerime me e-posti, mis saadetakse igal hommikul kell 2:00, et saaksime hiljem selle päeva jooksul andmeid läbi vaadata.
$ crontab -e
2:00 AM e-kirjade puhul lisage:
0 2 * * * / home/geek/script.sh
Kui teil on vaja rohkem abi selle osa kohta, oleme kirjutanud crontab-failidest terve artikli.
Automatiseeritud e-kirjad Windowsis
E-kirjade saatmine käsurealt on võimalik PowerShelli kaudu, kuid oleme leidnud, et selle funktsiooni rakendamine on kolmandate osapoolte rakendustega palju lihtsam, eriti Gmaili kasutamisel. SendEmail on Windowsile saadaval olev tasuta programm, mis muudab integreerimise Windows Task Scheduleriga ja Gmailiga imeliseks. Uusima eksemplari allalaadimiseks klõpsake ülaloleval lingil ja veenduge, et haarate TLS-toega versiooni.
Kui olete SendEmaili alla laadinud, eemaldage zip-fail ja pange sisu kusagile, mida saate neid salvestada nii kaua, kui kavatsete saata automatiseeritud e-kirju. Selles näites salvestame me programmi C: SendEmail
Testime SendEmaili, et saada kiire tunne selle toimimise kohta. Avage käsuviip, sisestades cmd menüüsse Start või Run (Ctrl + R).
Avatud käsurea abil kasutage käsku Muuda kataloogi, kuhu navigeerida SendEmaili faile.
cd C: e-post
Nüüd saame proovida saata e-kirja, millel on järgmine käsk:
sendEmail -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu kasutajanimi -xp password -u "Testi e-posti teema" -m "See on testpost."
Ilmselgelt asenda “kasutajanimi” ja “parool” oma konto volitustega enne käsu täitmist.
Siin on ülaltoodud käsk:
saada email
täidab programmi.
-f
- aadressilt
-t
- addresseerima
-s
- SMTP-server
-xu
- konto kasutajanimi
-xp
- konto parool
-u
- e-posti teema
-m
- e-posti tekstitekst
Kontrollige oma postkasti, et veenduda, et olete saanud e-posti testi, ja seejärel saame edasi minna skripti kirjutamisele, mis saadab meile serveriteabe.
Kirjade kirjutamine e-kirjadele
Et saada oma skriptist võimalikult palju kasu, kirjutame selle PowerShelli jaoks. Avage Windows PowerShell ISE, tippides käsku powershell_ise.exe käsureale (Ctrl + R).
PowerShelli ISE akna paremal küljel saate loetleda iga käsu, mida PowerShell on võimeline täitma. See peaks andma teile hea alguse vajaliku teabe edastamise kohta. Teie skriptis saate ka kolmandatelt osapooltelt programme helistada ka teabe väljastamiseks (s.o. SendEmail on kolmanda osapoole rakendus, kuid PowerShell ja cmd saavad seda kasutada nende tavapäraste ülesannete täitmiseks).
Meie näiteskripti puhul kontrollime C-draivi praegust kettakasutust, kuvame praegu käimasolevaid protsesse ja näitame kõiki faile, mida praegu võrgus jagatakse.
# Kontrollige kõvaketta ruumi
echo "C: draivi kasutamine:"> C: e-posti info.txt
Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Select-Object Size, FreeSpace >> C: SendEmail info.txt
# Loetlege praegu töötavad protsessid
echo "Running process:" >> C: SendEmail info.txt
get-process >> C: e-posti info.txt
# Näita praegu jagatavaid faile / kaustu
echo "SMB aktsiad:" >> C: SendEmail info.txt
get-smbshare >> C: e-posti info.txt
# Saada e-kiri
tüüp C: SendEmail info.txt | C: Saada e-mail e-post -f [email protected] -t [email protected] -s smtp.gmail.com:587 -xu kasutajanimi -xp parool -u "Igapäevane serveri info"
# Kustutage tehtud fail
rm C: e-posti info.txt
Selles skriptis väljastatakse C: E-posti aadressile info.txt ja seejärel selle dokumendi tekst meile enne selle kustutamist. Salvesta oma skript ps1-faililaiendiga (PowerShelli fail).
Kui skript on lõpetatud, käivitage kiire käivitamise käsk, et veenduda, et see töötab korralikult.
Kasutage lihtsalt võimsus
käsklusega a -faili
argument ja määrake oma skripti tee.
powershell -fail "c: e-posti aadress iga päev-email.ps1"
Kontrollige oma postkasti, et veenduda, et olete saanud e-kirja - kui mitte, vaata süntaksivigade skripti. Järgnevalt näeb välja näite skripti loodud e-kiri:
Võite vormindamise abil mängida (näiteks tühistada tekstidevahelisi tühjaid ridu), et see oleks teie seadmes ilusam või parem, kuid saate kasutada kolmanda osapoole programmi, mis väljastab vajaliku info loetavamal kujul kui Windows ( skriptimisprotsess on endiselt sama.
Kui olete skripti kinksid välja töötanud, saate kasutada seda Windows Task Scheduler abil. Avage menüü Start käsk Windows Task Scheduler.
Kui tegumite loendur on avatud, valige Action> Create Basic Task.
Nimetage see ülesanne nagu “Daily email script” ja klõpsake nuppu Next. Järgmisel ekraanil valige sagedus, millega soovite oma e-posti skripti käivitada, tõenäoliselt iga päev. Seejärel vali aeg, mida soovite skripti käivitada, ja vajuta järgmine.
Nüüd peaksite olema viisardi „Action” osas, valige „Start a Program” ja sisestage sama tekst, mille me oma skripti testimiseks varem käivitasime..
Vajutage järgmisele ja seejärel klõpsake selles aknas nuppu Yes:
Klõpsake viimases menüüs Finish (Valmis) ja olete lõpetanud oma automaatsete e-kirjade ajastamise.