Come generare e inviare automaticamente le statistiche del computer

Sommario:

Come generare e inviare automaticamente le statistiche del computer
Come generare e inviare automaticamente le statistiche del computer

Video: Come generare e inviare automaticamente le statistiche del computer

Video: Come generare e inviare automaticamente le statistiche del computer
Video: He saw the Tic-Tac UFO - Life Changing Events with Sean Cahill - YouTube 2024, Novembre
Anonim
È importante controllare ogni giorno i vari dati di registro e le statistiche sul tuo server, ma diventa noioso. Non sarebbe bello ricevere una singola email con tutti i punti salienti di ogni giorno, quindi non hai nemmeno bisogno di salire sul server per verificare i problemi? Questa guida ti mostrerà come configurare e-mail automatiche su Linux e Windows.
È importante controllare ogni giorno i vari dati di registro e le statistiche sul tuo server, ma diventa noioso. Non sarebbe bello ricevere una singola email con tutti i punti salienti di ogni giorno, quindi non hai nemmeno bisogno di salire sul server per verificare i problemi? Questa guida ti mostrerà come configurare e-mail automatiche su Linux e Windows.

Lo faremo in modo specifico per Ubuntu e Windows 8.1, con Gmail utilizzato come server di posta elettronica da cui viene inviata la posta. Se hai un'altra versione di Linux o Windows, o preferisci usare un altro servizio di posta elettronica, le istruzioni qui dovrebbero essere facilmente adattabili.

Email automatiche in Linux

Useremo due diversi pacchetti per realizzare questo, ssmtp e mailutils, quindi installali entrambi con il seguente comando:

$ sudo apt-get install ssmtp mailutils

Una volta installati, è necessario apportare alcune modifiche al file di configurazione SSMTP:

$ sudo vi /etc/ssmtp/ssmtp.conf

Modifica il file con queste modifiche (è sicuro cancellare semplicemente tutto il testo nel file e copiare / incollare queste impostazioni, se lo desideri):

# 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

Quando hai finito di modificare il file, ti consigliamo di modificare le autorizzazioni poiché la tua password Gmail è memorizzata in testo normale.

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

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

È sempre più sicuro rendere root il proprietario del file, ma poi dovremmo usare il comando sudo nel nostro script e ci richiederebbe una password, vanificando in tal modo lo scopo di automatizzare l'intero processo.

Se stai utilizzando un server condiviso e sei preoccupato che la tua password venga archiviata in chiaro e leggibile da root, crea un account Gmail usa e getta o utilizza un server di posta elettronica che non richiede alcun tipo di autenticazione.

Per assicurarti che tutto sia configurato correttamente, prova un messaggio di prova:

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

"Testing" sarà nel corpo dell'email e il soggetto sarà "Testing mail setup". Controlla la tua email per assicurarti di averlo ricevuto.

Scrivere uno script per le email

Ora che siamo in grado di inviare e-mail dalla riga di comando, scriviamo uno script che ci invierà alcune informazioni di base sul nostro sistema.

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

Ovviamente puoi ottenere molto più approfondimento con la tua sceneggiatura e persino rendere la formattazione un po 'più bella, ma questo è l'output che appare nella nostra email:

Ora che lo script è scritto e testato, possiamo usare cron per eseguirlo automaticamente ogni giorno alla stessa ora. In questo esempio, configureremo l'e-mail da inviare alle 2:00 ogni mattina, in modo che possiamo esaminare i dati più tardi quel giorno.
Ora che lo script è scritto e testato, possiamo usare cron per eseguirlo automaticamente ogni giorno alla stessa ora. In questo esempio, configureremo l'e-mail da inviare alle 2:00 ogni mattina, in modo che possiamo esaminare i dati più tardi quel giorno.

$ crontab -e

Per le e-mail 2:00, aggiungere:

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

Abbiamo scritto un intero articolo sui file crontab se hai bisogno di più aiuto con questa parte.

Email automatiche in Windows

L'invio di e-mail dalla riga di comando è possibile tramite PowerShell, ma abbiamo scoperto che l'implementazione di questa funzionalità è molto più semplice con le app di terze parti, specialmente quando si utilizza Gmail. SendEmail è un programma gratuito disponibile per Windows che rende l'integrazione con Windows Task Scheduler e Gmail un gioco da ragazzi. Fai clic sul link qui sopra per scaricare la copia più recente e assicurati di prendere la versione supportata da TLS.

Una volta scaricato SendEmail, estrai il file zip e inserisci il contenuto da qualche parte in cui puoi memorizzarlo per tutto il tempo che intendi inviare email automatiche. In questo esempio, andremo a memorizzare il programma in C: SendEmail

Esaminiamo SendEmail per avere un'idea rapida di come funziona. Aprire un prompt dei comandi digitando cmd nel menu Start o Esegui (Ctrl + R).

Con il prompt dei comandi aperto, utilizzare il comando change directory per navigare dove sono stati archiviati i file SendEmail.
Con il prompt dei comandi aperto, utilizzare il comando change directory per navigare dove sono stati archiviati i file SendEmail.

cd C:SendEmail

Ora possiamo provare a inviare una email di prova con il seguente comando:

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

Ovviamente, sostituire "username" e "password" con le credenziali dell'account prima di eseguire il comando.

Ecco cosa fa effettivamente il comando sopra:

sendEmail

esegue il programma.

-f

- dall'indirizzo

-t

- indirizzare

-s

- Server SMTP

-xu

- nome utente dell'account

-xp

- password dell'account

-u

- oggetto dell'email

-m

- testo del corpo dell'e-mail

Controlla la tua casella di posta per assicurarti di aver ricevuto l'e-mail di prova, quindi possiamo passare alla scrittura di uno script che ci invierà le informazioni sul server.

Scrivere uno script per le email

Per ottenere il massimo dal nostro script, lo scriveremo per PowerShell. Apri Windows PowerShell ISE digitando powershell_ise.exe in un prompt Esegui (Ctrl + R).

Sul lato destro della finestra ISE di PowerShell, è possibile elencare tutti i comandi che PowerShell è in grado di eseguire. Questo dovrebbe darti un buon inizio nel generare i tipi di informazioni che hai bisogno di segnalare. Nel tuo script, puoi anche chiamare i programmi di terze parti per produrre anche informazioni (ad esempio SendEmail è un'applicazione di terze parti ma PowerShell e cmd possono usarlo per eseguire attività che normalmente non possono).
Sul lato destro della finestra ISE di PowerShell, è possibile elencare tutti i comandi che PowerShell è in grado di eseguire. Questo dovrebbe darti un buon inizio nel generare i tipi di informazioni che hai bisogno di segnalare. Nel tuo script, puoi anche chiamare i programmi di terze parti per produrre anche informazioni (ad esempio SendEmail è un'applicazione di terze parti ma PowerShell e cmd possono usarlo per eseguire attività che normalmente non possono).
Per il nostro script di esempio, controlleremo l'attuale utilizzo del disco dell'unità C, mostreremo i processi attualmente in esecuzione e mostreremo tutti i file che vengono attualmente condivisi sulla rete.
Per il nostro script di esempio, controlleremo l'attuale utilizzo del disco dell'unità C, mostreremo i processi attualmente in esecuzione e mostreremo tutti i file che vengono attualmente condivisi sulla rete.

# 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

In questo script, vengono inviate varie informazioni a C: SendEmail info.txt, quindi il testo in quel documento ci viene inviato via email prima che venga eliminato. Salva il tuo script con un'estensione di file ps1 (file PowerShell).

Terminato lo script, esegui un test rapido da una richiesta di esecuzione per assicurarti che funzioni correttamente.

Basta usare il

powershell

comando con a

-file

argomento e specificare il percorso del tuo script.

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

Controlla la tua casella di posta per assicurarti di aver ricevuto l'e-mail; in caso contrario, controlla gli script per gli errori di sintassi. Ecco come appare l'e-mail generata dal nostro script di esempio:
Controlla la tua casella di posta per assicurarti di aver ricevuto l'e-mail; in caso contrario, controlla gli script per gli errori di sintassi. Ecco come appare l'e-mail generata dal nostro script di esempio:
Puoi giocare con la formattazione (come echeggiare le linee vuote tra il testo) per renderlo più bello sul tuo dispositivo, o meglio ancora puoi usare un programma di terze parti che produrrà le informazioni necessarie in un formato più leggibile rispetto a Windows ( il processo di scripting sarà sempre lo stesso).
Puoi giocare con la formattazione (come echeggiare le linee vuote tra il testo) per renderlo più bello sul tuo dispositivo, o meglio ancora puoi usare un programma di terze parti che produrrà le informazioni necessarie in un formato più leggibile rispetto a Windows ( il processo di scripting sarà sempre lo stesso).

Una volta individuati i nodi nel tuo script, puoi utilizzare l'Utilità di pianificazione di Windows per automatizzarla. Apri l'Utilità di pianificazione di Windows tramite il menu Start.

Con l'Utilità di pianificazione aperta, selezionare Azione> Crea attività di base.
Con l'Utilità di pianificazione aperta, selezionare Azione> Crea attività di base.
Assegna un nome a questa attività come "Script email giornaliero" e fai clic su Avanti. Nella schermata successiva, seleziona la frequenza con cui desideri eseguire lo script di posta elettronica, probabilmente ogni giorno. Quindi, scegli l'ora in cui desideri eseguire lo script e premi Avanti.
Assegna un nome a questa attività come "Script email giornaliero" e fai clic su Avanti. Nella schermata successiva, seleziona la frequenza con cui desideri eseguire lo script di posta elettronica, probabilmente ogni giorno. Quindi, scegli l'ora in cui desideri eseguire lo script e premi Avanti.

Ora dovresti essere nella parte "Azione" della procedura guidata, selezionare "Avvia un programma" e inserire lo stesso testo che abbiamo inserito nel prompt Esegui prima per testare il nostro script.

Consigliato: