Kā automātiski ģenerēt un nosūtīt datoru statistiku

Satura rādītājs:

Kā automātiski ģenerēt un nosūtīt datoru statistiku
Kā automātiski ģenerēt un nosūtīt datoru statistiku

Video: Kā automātiski ģenerēt un nosūtīt datoru statistiku

Video: Kā automātiski ģenerēt un nosūtīt datoru statistiku
Video: Making Life Miserable For Tech Support Scammers - YouTube 2024, Aprīlis
Anonim
Ir svarīgi katru dienu pārbaudīt dažādus žurnāla datus un statistiku savā serverī, taču tas kļūst garlaicīgs. Vai nebūtu jauki, ja katru dienu saņemsiet vienu e-pastu ar visiem izceļotājiem, tāpēc jums pat nav nepieciešams nokļūt serverī, lai pārbaudītu problēmas? Šī rokasgrāmata parādīs, kā konfigurēt automatizētos e-pastus uz Linux un Windows.
Ir svarīgi katru dienu pārbaudīt dažādus žurnāla datus un statistiku savā serverī, taču tas kļūst garlaicīgs. Vai nebūtu jauki, ja katru dienu saņemsiet vienu e-pastu ar visiem izceļotājiem, tāpēc jums pat nav nepieciešams nokļūt serverī, lai pārbaudītu problēmas? Šī rokasgrāmata parādīs, kā konfigurēt automatizētos e-pastus uz Linux un Windows.

Mēs to īpaši aplūkosim attiecībā uz Ubuntu un Windows 8.1, un Gmail tiek izmantots kā e-pasta serveris, no kura tiek sūtīts pasts. Ja jums ir cita Linux vai Windows versija vai arī vēlaties izmantot citu e-pasta pakalpojumu, šajā instrukcijā ir jābūt viegli pielāgojamam.

Automātiskais e-pasts sistēmā Linux

Lai veiktu šo, ssmtp un mailutils, mēs izmantosim divus dažādus pakotņus, tādēļ instalējiet tos abus ar šādu komandu:

$ sudo apt-get install ssmtp mailutils

Kad tie ir instalēti, mums ir jāveic dažas izmaiņas SSMTP konfigurācijas failā:

$ sudo vi /etc/ssmtp/ssmtp.conf

Rediģējiet failu ar šīm izmaiņām (droši vien vienkārši izdzēsiet visu failā esošo tekstu un, ja vēlaties, nokopējiet / ielīmējiet šos iestatījumus):

# 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

Kad esat pabeidzis faila rediģēšanu, jūs vēlaties mainīt atļaujas, jo jūsu Gmail parole tiek glabāta vienkāršā tekstā.

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

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

Datora īpašnieks vienmēr ir drošāks, taču tad mums vajadzētu izmantot komandu sudo mūsu skriptā, un tas liks mums paroli, tādējādi uzvarot šī procesa automatizācijas mērķi.

Ja jūs izmantojat koplietojamo serveri un uztraucaties, ka jūsu parole tiek glabāta vienkāršā tekstā un to var lasīt ar root, izveidojiet izmežģī esošo Gmail kontu vai izmantojiet e-pasta serveri, kuram vispirms nav nepieciešama autentifikācija.

Lai pārliecinātos, ka viss ir pareizi konfigurēts, mēģināsim izmēģināt e-pastu:

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

"Tests" būs e-pasta struktūrā, un tēma tiks "Pārbaudīt pasta iestatījumus". Pārbaudiet savu e-pastu, lai pārliecinātos, vai esat saņēmis šo e-pastu.

Sarakstes rakstīšana e-pastam

Tagad, kad mēs varam sūtīt e-pastus no komandrindas, rakstiet skriptu, kas mums nosūtīs kādu pamatinformāciju par mūsu sistēmu.

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

Protams, jūs varat iegūt daudz padziļinātu informāciju par savu skriptu un pat padarīt formatējumu nedaudz labāku, bet tas ir tas, kas iznākumā izskatās mūsu e-pastā:

Tagad, kad skripts ir rakstīts un pārbaudīts, mēs varam izmantot cronu, lai to automātiski izpildītu katru dienu vienā un tajā pašā laikā. Šajā piemērā mēs konfigurēsim e-pasta ziņojumu, kas jānosūta katru pulksten plkst. 2:00, lai mēs tajā pašā dienā varētu izmantot datus.
Tagad, kad skripts ir rakstīts un pārbaudīts, mēs varam izmantot cronu, lai to automātiski izpildītu katru dienu vienā un tajā pašā laikā. Šajā piemērā mēs konfigurēsim e-pasta ziņojumu, kas jānosūta katru pulksten plkst. 2:00, lai mēs tajā pašā dienā varētu izmantot datus.

$ crontab -e

Lai saņemtu 2:00 e-pastu, pievienojiet:

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

Mēs esam uzrakstījuši pilnu rakstu par crontab failiem, ja jums nepieciešama papildu palīdzība šajā daļā.

Automatizētās e-pastes operētājsistēmā Windows

E-pasta ziņojumu sūtīšana komandrindā ir iespējama, izmantojot PowerShell, taču mēs esam noskaidrojuši, ka šo funkciju ieviešana ir daudz vienkāršāka ar trešo pušu lietotnēm, it īpaši, izmantojot Gmail. SendEmail ir bezmaksas programma, kas pieejama Windows, kas padara integrāciju ar Windows Task Scheduler un Gmail vieglumu. Noklikšķiniet uz augstāk esošās saites, lai lejupielādētu jaunāko kopiju, un pārliecinieties, ka esat paņēmis TLS atbalstīto versiju.

Kad esat lejupielādējis SendEmail, izraksta zip failu un ievieto saturu kaut kur, ka jūs varat to uzglabāt tik ilgi, kamēr plānojat sūtīt automātiskus e-pastus. Šajā piemērā mēs vienkārši glabāsim programmu C: SendEmail

Izmēģināsim SendEmail, lai ātri uzzinātu, kā tā darbojas. Atveriet komandu uzvedni, ierakstot cmd izvēlnē Sākt vai Palaist (Ctrl + R).

Atverot komandu uzvedni, izmantojiet komandu Change directory, lai pārvietotos uz vietu, kur esat saglabājis SendEmail failus.
Atverot komandu uzvedni, izmantojiet komandu Change directory, lai pārvietotos uz vietu, kur esat saglabājis SendEmail failus.

cd C:SendEmail

Tagad mēs varam mēģināt sūtīt testa e-pastu ar šādu komandu:

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

Protams, nomainiet "lietotājvārdu" un "paroli" ar sava konta akreditācijas datiem pirms komandas izpildes.

Tālāk ir norādīts, ko iepriekš minētā komanda patiešām veic:

sendEmail

izpilda programmu.

-f

- no adreses

-t

- uz adresi

-s

- SMTP serveris

-xu

- konta lietotājvārds

-xp

- konta parole

-u

- e-pasta tēma

-m

- e-pasta pamatteksts

Pārbaudiet savu iesūtni, lai pārliecinātos, ka saņēmāt testa e-pastu, un pēc tam mēs varam turpināt rakstīt skriptu, kas nosūtīs mums informāciju par serveri.

Sarakstes rakstīšana e-pastam

Lai maksimāli izmantotu mūsu skriptu, mēs to rakstīsim PowerShell. Atveriet Windows PowerShell ISE, ierakstot powershell_ise.exe uz komandu Run (Ctrl + R).

PowerShell ISE loga labajā pusē varat norādīt katru komandu, ko PowerShell spēj izpildīt. Tam vajadzētu nodrošināt labu sākumu, lai radītu nepieciešamās informācijas veidus, par kuriem jāziņo. Jūsu skriptā varat arī piezvanīt trešo pušu programmām, lai iegūtu informāciju (t.i., SendEmail ir trešās puses lietotne, bet PowerShell un cmd to var izmantot, lai veiktu uzdevumus, kurus viņi parasti nevar izpildīt).
PowerShell ISE loga labajā pusē varat norādīt katru komandu, ko PowerShell spēj izpildīt. Tam vajadzētu nodrošināt labu sākumu, lai radītu nepieciešamās informācijas veidus, par kuriem jāziņo. Jūsu skriptā varat arī piezvanīt trešo pušu programmām, lai iegūtu informāciju (t.i., SendEmail ir trešās puses lietotne, bet PowerShell un cmd to var izmantot, lai veiktu uzdevumus, kurus viņi parasti nevar izpildīt).
Mūsu piemēra skriptā mēs pārbaudīsim pašreizējo diska C diska izmantošanu, parāda pašlaik notiekošos procesus un parāda visus failus, kas pašlaik tiek kopīgoti tīklā.
Mūsu piemēra skriptā mēs pārbaudīsim pašreizējo diska C diska izmantošanu, parāda pašlaik notiekošos procesus un parāda visus failus, kas pašlaik tiek kopīgoti tīklā.

# 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

Šajā skriptā dažāda informācija tiek izvadīta uz C: SendEmail info.txt, un pēc tam šajā dokumentā esošais teksts mums tiek nosūtīts pa e-pastu pirms tas tiek izdzēsts. Saglabājiet savu skriptu ar faila paplašinājumu ps1 (PowerShell fails).

Kad jūsu skripts ir pabeigts, izpildiet ātru pārbaudi, lai pārbaudītu, vai tā darbojas pareizi.

Vienkārši izmantojiet

powershell

komanda ar a

-file

argumentu un norādiet ceļu uz jūsu skriptu.

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

Pārbaudiet savu iesūtni, lai pārliecinātos, vai esat saņēmis e-pastu - ja nē, pārskatiet savu skriptu sintakses kļūdām. Lūk, kā izskatās, kā izveidojās mūsu piemēra skripta ģenerētais e-pasts:
Pārbaudiet savu iesūtni, lai pārliecinātos, vai esat saņēmis e-pastu - ja nē, pārskatiet savu skriptu sintakses kļūdām. Lūk, kā izskatās, kā izveidojās mūsu piemēra skripta ģenerētais e-pasts:
Varat spēlēt ar formatējumu (piemēram, atstarojot tukšas līnijas starp tekstu), lai jūsu ierīce būtu labāka, vai vēl labāk, bet varat izmantot trešās puses programmu, kas izdos vajadzīgo informāciju vairāk lasāmā formātā nekā Windows ( skriptu process joprojām būs vienāds).
Varat spēlēt ar formatējumu (piemēram, atstarojot tukšas līnijas starp tekstu), lai jūsu ierīce būtu labāka, vai vēl labāk, bet varat izmantot trešās puses programmu, kas izdos vajadzīgo informāciju vairāk lasāmā formātā nekā Windows ( skriptu process joprojām būs vienāds).

Kad esat izveidojis skriptu, varat izmantot Windows uzdevumu plānotāju, lai to automatizētu. Atveriet Windows uzdevumu plānotāju, izmantojot izvēlni Sākt.

Atverot uzdevumu plānotāju, atlasiet Darbība> Izveidot pamatdarbu.
Atverot uzdevumu plānotāju, atlasiet Darbība> Izveidot pamatdarbu.
Nosaukiet šo uzdevumu kaut kas līdzīgs "Daily email script" un noklikšķiniet uz "Next". Nākamajā ekrānā atlasiet frekvenci, ar kādu vēlaties, lai jūsu e-pasta skripts darbotos, iespējams, katru dienu. Pēc tam izvēlieties laiku, kurā skripts jāuzsāk, un nospiediet nākamo.
Nosaukiet šo uzdevumu kaut kas līdzīgs "Daily email script" un noklikšķiniet uz "Next". Nākamajā ekrānā atlasiet frekvenci, ar kādu vēlaties, lai jūsu e-pasta skripts darbotos, iespējams, katru dienu. Pēc tam izvēlieties laiku, kurā skripts jāuzsāk, un nospiediet nākamo.

Tagad jums vajadzētu būt vedņa sadaļā "Darbība", izvēlieties "Startēt programmu" un ievadiet to pašu tekstu, kuru mēs ievadījām ātrās palaišanas reizē, lai pārbaudītu mūsu skriptu.

Ieteicams: