Kaip automatiškai kurti ir siųsti kompiuterio statistiką

Turinys:

Kaip automatiškai kurti ir siųsti kompiuterio statistiką
Kaip automatiškai kurti ir siųsti kompiuterio statistiką

Video: Kaip automatiškai kurti ir siųsti kompiuterio statistiką

Video: Kaip automatiškai kurti ir siųsti kompiuterio statistiką
Video: How does a tech support scam work? - YouTube 2024, Lapkritis
Anonim
Svarbu kiekvieną dieną tikrinti įvairius žurnalo duomenis ir statistinius duomenis savo serveryje, tačiau tai tampa vis sunkesne. Ar nebūtų malonu gauti vieną el. Laišką su visais svarbiausiais įvykiais kiekvieną dieną, todėl net nereikia patekti į serverį patikrinti problemas? Šis vadovas parodys, kaip konfigūruoti automatinius el. Laiškus sistemose "Linux" ir "Windows".
Svarbu kiekvieną dieną tikrinti įvairius žurnalo duomenis ir statistinius duomenis savo serveryje, tačiau tai tampa vis sunkesne. Ar nebūtų malonu gauti vieną el. Laišką su visais svarbiausiais įvykiais kiekvieną dieną, todėl net nereikia patekti į serverį patikrinti problemas? Šis vadovas parodys, kaip konfigūruoti automatinius el. Laiškus sistemose "Linux" ir "Windows".

Mes specialiai aptarsime tai "Ubuntu" ir "Windows 8.1", kai "Gmail" naudojamas kaip el. Pašto serveris, iš kurio siunčiamas el. Paštas. Jei turite kitą "Linux" ar "Windows" versiją arba norite naudoti kokią nors kitą el. Pašto paslaugą, čia pateiktos instrukcijos turėtų būti lengvai pritaikomos.

Automatiniai el. Laiškai "Linux"

Mes ketiname naudoti du skirtingus paketus, kad tai įvykdytų, ssmtp ir mailutils, todėl įdiekite abu iš šių komandų:

$ sudo apt-get install ssmtp mailutils

Kai jie yra įdiegti, turime atlikti tam tikrus SSMTP konfigūracijos failo pakeitimus:

$ sudo vi /etc/ssmtp/ssmtp.conf

Redaguokite failą naudodami šiuos pakeitimus (saugu paprasčiausiai ištrinti visą failo tekstą ir, jei norite, nukopijuokite / įklijuokite šiuos nustatymus):

# This address will receive the emails, so enter your own email here if you want to receive them.

[email protected]

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

[email protected]

# 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

Baigę redaguoti failą, norėsite keisti leidimus, nes jūsų "Gmail" slaptažodis bus saugomas paprastu tekstu.

$ sudo chmod 640 /etc/ssmtp/ssmtp.conf

$ sudo chown username.username /etc/ssmtp/ssmtp.conf

Visada saugesnis yra failo savininko sukūrimas, bet tada mes turėsime naudoti komandą sudo komandoje mūsų scenarijų, o tai pareikalaus mums slaptažodžio, tokiu būdu nugalėję šio proceso automatizavimo paskirtį.

Jei naudojate bendrintą serverį ir nerimauja dėl to, kad jūsų slaptažodis saugomas paprastu tekstu ir yra įskaitomas root, sukurkite išmintingą "Gmail" paskyrą arba naudokite el. Pašto serverį, kuris pirmiausia nereikalauja jokio tipo autentifikavimo.

Norėdami įsitikinti, kad viskas tinkamai sukonfigūruota, pabandykite bandomąjį el. Laišką:

$ echo 'Testing' | mail -s 'Testing mail setup' [email protected]

"Testavimas" bus el. Laiško korpusas, o tema bus "Tikrinama pašto sąranka". Patikrinkite savo el. Paštą, kad įsitikintumėte, jog gavote.

Rašyti scenarijų laiškams

Dabar, kai mes galime siųsti el. Laiškus iš komandinės eilutės, parašyk scenarijų, kuris mums atsiųs pagrindinę informaciją apie mūsų sistemą.

#!/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

Akivaizdu, kad naudodamiesi savo scenarijais galėsite kur kas išsamiau išnagrinėti, netgi šiek tiek gražiau išversti formatavimą, bet tai, ko išeitis atrodys mūsų el. Pašto adresu:

Dabar, kai scenarijus yra parašytas ir išbandytas, mes galime naudoti croną, kad kiekvieną dieną jis būtų automatiškai paleistas vienu metu. Šiame pavyzdyje mes sukonfigūruosime el. Laišką, kuris bus siunčiamas kiekvieną rytą 2:00 val., Todėl tą dieną galėsime peržiūrėti duomenis.
Dabar, kai scenarijus yra parašytas ir išbandytas, mes galime naudoti croną, kad kiekvieną dieną jis būtų automatiškai paleistas vienu metu. Šiame pavyzdyje mes sukonfigūruosime el. Laišką, kuris bus siunčiamas kiekvieną rytą 2:00 val., Todėl tą dieną galėsime peržiūrėti duomenis.

$ crontab -e

2:00 am el. Laiškai pridėti:

0 2 * * * /home/geek/script.sh

Mes parašėme visą straipsnį apie crontab failus, jei jums reikia daugiau pagalbos šioje dalyje.

Automatizuoti el. Laiškai "Windows" sistemoje

El. Laiškų siuntimas komandinėje eilutėje galimas naudojant "PowerShell", tačiau mes nustatėme, kad trečiųjų šalių programų, ypač naudojant "Gmail", funkcijų įgyvendinimas yra daug lengvesnis. SendEmail yra nemokama programa "Windows", kuri integruojasi su "Windows Task Scheduler" ir "Gmail". Spustelėkite aukščiau esančią nuorodą, kad atsisiųstumėte naujausią kopiją ir įsitikinkite, kad patraukėte TLS palaikomą versiją.

Atsisiųskite "SendEmail", ištrauksite zip failą ir įdėsite turinį kur nors, kad galėsite jį saugoti, kol planuojate siųsti automatinius el. Laiškus. Šiame pavyzdyje mes ketiname saugoti programą C: SendEmail

Išbandykite "SendEmail", kad greitai suvoktumėte, kaip tai veikia. Atidarykite komandų eilutę, įvedę cmd į meniu Pradėti arba Vykdyti (Ctrl + R).

Atsidarius komandų eilutėje, naudokite komandą "Change Directory", kad galėtumėte naršyti ten, kur išsaugojote "SendEmail" failus.
Atsidarius komandų eilutėje, naudokite komandą "Change Directory", kad galėtumėte naršyti ten, kur išsaugojote "SendEmail" failus.

cd C:SendEmail

Dabar mes galime bandyti siųsti bandomąjį el. Laišką naudodami šią komandą:

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.'

Žinoma, prieš pradėdami vykdyti komandą, pakeiskite "vartotojo vardą" ir "slaptažodį" savo paskyros kredencialais.

Štai, ką iš tikrųjų daro komanda:

sendEmail

vykdo programą.

-f

- iš adreso

-t

- Adresuoti

-s

- SMTP serveris

-xu

- paskyros vartotojo vardas

-xp

- paskyros slaptažodis

-u

- elektroninio laiško tema

-m

- el. Laiško tekstas

Patikrinkite gautuosius, kad įsitikintumėte, jog gavote bandomąjį el. Laišką, o tada galėsime rašyti scenarijų, kuris atsiųs mums informaciją apie serverį.

Rašyti scenarijų laiškams

Norėdami kuo geriau išnaudoti mūsų scenarijų, mes ketiname parašyti jį "PowerShell". Atidarykite "Windows PowerShell ISE", įvesdami "powershell_ise.exe" į komandą "Vykdyti" (Ctrl + R).

Dešinėje "PowerShell ISE" lango dalyje galite nurodyti kiekvieną komandą, kurią "PowerShell" gali vykdyti. Tai turėtų suteikti jums gerą pradžią apie informacijos, kurią jums reikia pateikti, rūšis. Savo scenarijuje taip pat galite skambinti trečiosios šalies programoms taip pat pateikti informaciją (t. Y. SendEmail yra trečiosios šalies programa, tačiau "PowerShell" ir "cmd" gali ją naudoti norėdami atlikti užduotis, kurių paprastai jie negali).
Dešinėje "PowerShell ISE" lango dalyje galite nurodyti kiekvieną komandą, kurią "PowerShell" gali vykdyti. Tai turėtų suteikti jums gerą pradžią apie informacijos, kurią jums reikia pateikti, rūšis. Savo scenarijuje taip pat galite skambinti trečiosios šalies programoms taip pat pateikti informaciją (t. Y. SendEmail yra trečiosios šalies programa, tačiau "PowerShell" ir "cmd" gali ją naudoti norėdami atlikti užduotis, kurių paprastai jie negali).
Mūsų pavyzdiniame scenarijuje mes patikrinsime dabartinį disko C disko naudojimą, parodysime šiuo metu veikiančius procesus ir parodysime visus failus, kurie šiuo metu bendrinami per tinklą.
Mūsų pavyzdiniame scenarijuje mes patikrinsime dabartinį disko C disko naudojimą, parodysime šiuo metu veikiančius procesus ir parodysime visus failus, kurie šiuo metu bendrinami per tinklą.

# 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

Šiame scenarijuje įvairūs duomenys išvedami į C: SendEmail info.txt, o tada šiame dokumente pateiktas tekstas mums siunčiamas elektroniniu paštu prieš ištrinant. Išsaugokite scenarijų naudodami ps1 failo plėtinį (PowerShell failą).

Kai baigsite scenarijų, paleiskite greitą bandymą, kad įsitikintumėte, jog jis veikia tinkamai.

Tiesiog naudokite

powershell

komanda su a

-file

argumentas ir nurodykite savo scenarijaus kelią.

powershell -file 'c:SendEmaildaily-email.ps1'

Patikrinkite gautuosius, kad įsitikintumėte, jog gavote el. Laišką. Jei ne, peržiūrėkite savo scenarijų sintaksės klaidoms. Štai, kaip atrodo, sukurtas el. Laiškas iš mūsų pavyzdinio scenarijaus:
Patikrinkite gautuosius, kad įsitikintumėte, jog gavote el. Laišką. Jei ne, peržiūrėkite savo scenarijų sintaksės klaidoms. Štai, kaip atrodo, sukurtas el. Laiškas iš mūsų pavyzdinio scenarijaus:
Galite žaisti aplink formatavimą (pvz., Atkartojant tuščias eilutes tarp teksto), kad jūsų įrenginys būtų gražesnis, arba dar geriau, galite naudoti trečiosios šalies programą, kuri išduos reikalingą informaciją daugiau skaitymo formatu nei "Windows" ( scenarijaus procesas vis tiek bus toks pat).
Galite žaisti aplink formatavimą (pvz., Atkartojant tuščias eilutes tarp teksto), kad jūsų įrenginys būtų gražesnis, arba dar geriau, galite naudoti trečiosios šalies programą, kuri išduos reikalingą informaciją daugiau skaitymo formatu nei "Windows" ( scenarijaus procesas vis tiek bus toks pat).

Kai scenarijuje sukūrėte paketus, galite automatiškai jį naudoti "Windows Task Scheduler". Atidarykite "Windows Task Scheduler" per meniu "Start".

Kai užduočių planavimo programa atidaryta, pasirinkite Veiksmas> Sukurti pagrindinę užduotį.
Kai užduočių planavimo programa atidaryta, pasirinkite Veiksmas> Sukurti pagrindinę užduotį.
Pavadinkite šią užduotį kažką panašaus į "Daily email script" ir spustelėkite "Next". Kitu ekranu pasirinkite dažnį, su kuriuo norėtumėte paleisti el. Pašto scenarijų, tikriausiai kasdien. Tada pasirinkite laiką, kurį norite paleisti scenarijų, ir spustelėkite kitą.
Pavadinkite šią užduotį kažką panašaus į "Daily email script" ir spustelėkite "Next". Kitu ekranu pasirinkite dažnį, su kuriuo norėtumėte paleisti el. Pašto scenarijų, tikriausiai kasdien. Tada pasirinkite laiką, kurį norite paleisti scenarijų, ir spustelėkite kitą.

Dabar turėtumėte būti vedlio "Veiksmų" dalyje, pasirinkite "Pradėti programą" ir įveskite tą patį tekstą, kurį anksčiau įvedėme "Run prompt", kad išbandytume savo scenarijų.

Rekomenduojamas: