Ako automaticky generovať a zasielať štatistiky počítača

Obsah:

Ako automaticky generovať a zasielať štatistiky počítača
Ako automaticky generovať a zasielať štatistiky počítača

Video: Ako automaticky generovať a zasielať štatistiky počítača

Video: Ako automaticky generovať a zasielať štatistiky počítača
Video: HOW TO Run Commute | Top Tips For Running To Work - YouTube 2024, Smieť
Anonim
Je dôležité skontrolovať rôzne denné údaje a štatistiky na vašom serveri každý deň, ale robí to zdĺhavé. Nebolo by príjemné prijímať jeden e-mail so všetkými dôležitosťami každý deň, takže sa ani nemusíte dostať na server, aby ste si overili problémy? Táto príručka vám ukáže, ako nakonfigurovať automatické e-maily v systéme Linux a Windows.
Je dôležité skontrolovať rôzne denné údaje a štatistiky na vašom serveri každý deň, ale robí to zdĺhavé. Nebolo by príjemné prijímať jeden e-mail so všetkými dôležitosťami každý deň, takže sa ani nemusíte dostať na server, aby ste si overili problémy? Táto príručka vám ukáže, ako nakonfigurovať automatické e-maily v systéme Linux a Windows.

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.

[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

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:

Teraz, keď je skript napísaný a testovaný, môžeme použiť cron na jeho automatické vykonanie v rovnakom čase každý deň. V tomto príklade budeme nakonfigurovať e-mail, ktorý sa bude posielať každé ráno o 2:00 hod., Aby sme mohli prejsť údaje neskôr v ten deň.
Teraz, keď je skript napísaný a testovaný, môžeme použiť cron na jeho automatické vykonanie v rovnakom čase každý deň. V tomto príklade budeme nakonfigurovať e-mail, ktorý sa bude posielať každé ráno o 2:00 hod., Aby sme mohli prejsť údaje neskôr v ten deň.

$ 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).

Ak je príkazový riadok otvorený, použite príkaz zmeniť katalóg a prejdite na miesto uloženia súborov SendEmail.
Ak je príkazový riadok otvorený, použite príkaz zmeniť katalóg a prejdite na miesto uloženia súborov SendEmail.

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

Na pravej strane okna PowerShell ISE môžete vymenovať každý príkaz, ktorý je PowerShell schopný vykonať. To by malo poskytnúť dobrý štart pri vytváraní typov informácií, ktoré potrebujete nahlásiť. Vo svojom skripte môžete tiež zavolať na programy tretích strán, aby ste mohli zobrazovať aj informácie (t. J. SendEmail je aplikácia tretej strany, ale PowerShell a cmd ju môžu použiť na splnenie úloh, ktoré normálne nemôžu).
Na pravej strane okna PowerShell ISE môžete vymenovať každý príkaz, ktorý je PowerShell schopný vykonať. To by malo poskytnúť dobrý štart pri vytváraní typov informácií, ktoré potrebujete nahlásiť. Vo svojom skripte môžete tiež zavolať na programy tretích strán, aby ste mohli zobrazovať aj informácie (t. J. SendEmail je aplikácia tretej strany, ale PowerShell a cmd ju môžu použiť na splnenie úloh, ktoré normálne nemôžu).
V našom príklade skriptu skontrolujeme aktuálne využitie disku na jednotke C, ukážeme aktuálne bežiace procesy a zobrazujeme všetky súbory, ktoré sú v súčasnosti zdieľané v sieti.
V našom príklade skriptu skontrolujeme aktuálne využitie disku na jednotke C, ukážeme aktuálne bežiace procesy a zobrazujeme všetky súbory, ktoré sú v súčasnosti zdieľané v sieti.

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

Skontrolujte svoju doručenú poštu, aby ste sa uistili, že ste dostali e-mail - ak nie, prezrite skript na chyby syntaxe. Tu je generovaný e-mail z nášho príkladového skriptu:
Skontrolujte svoju doručenú poštu, aby ste sa uistili, že ste dostali e-mail - ak nie, prezrite skript na chyby syntaxe. Tu je generovaný e-mail z nášho príkladového skriptu:
Môžete sa pohrať s formátovaním (ako ozvena prázdne riadky medzi textu), aby bolo zobrazenie krajšie na vašom zariadení, alebo ešte lepšie, môžete použiť program tretej strany, ktorý vypíše potrebné informácie vo zrozumiteľnejšie podobe, než je tomu Windows ( skriptovací proces bude stále rovnaký).
Môžete sa pohrať s formátovaním (ako ozvena prázdne riadky medzi textu), aby bolo zobrazenie krajšie na vašom zariadení, alebo ešte lepšie, môžete použiť program tretej strany, ktorý vypíše potrebné informácie vo zrozumiteľnejšie podobe, než je tomu Windows ( skriptovací proces bude stále rovnaký).

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.

Po otvorení Plánovača úloh vyberte položku Akcia> Vytvoriť základnú úlohu.
Po otvorení Plánovača úloh vyberte položku Akcia> Vytvoriť základnú úlohu.
Pomenujte túto úlohu niečo ako "Daily email script" a kliknite na tlačidlo Next. Na ďalšej obrazovke vyberte frekvenciu, s ktorou chcete spúšťať svoj e-mailový skript, pravdepodobne denne. Potom vyberte čas, ktorý chcete spúšťať, a stlačte ďalší.
Pomenujte túto úlohu niečo ako "Daily email script" a kliknite na tlačidlo Next. Na ďalšej obrazovke vyberte frekvenciu, s ktorou chcete spúšťať svoj e-mailový skript, pravdepodobne denne. Potom vyberte čas, ktorý chcete spúšťať, a stlačte ďalší.

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.

Odporúča: