Como gerar automaticamente e enviar por e-mail estatísticas do computador

Índice:

Como gerar automaticamente e enviar por e-mail estatísticas do computador
Como gerar automaticamente e enviar por e-mail estatísticas do computador

Vídeo: Como gerar automaticamente e enviar por e-mail estatísticas do computador

Vídeo: Como gerar automaticamente e enviar por e-mail estatísticas do computador
Vídeo: Usar o NOTEBOOK NA TOMADA ou não? O que é melhor pra BATERIA? Explicamos neste vídeo! - YouTube 2024, Novembro
Anonim
É importante verificar vários dados de registro e estatísticas no seu servidor todos os dias, mas isso é entediante. Não seria bom receber um único e-mail com todos os destaques todos os dias, então você nem precisa entrar no servidor para verificar problemas? Este guia mostrará como configurar e-mails automatizados no Linux e no Windows.
É importante verificar vários dados de registro e estatísticas no seu servidor todos os dias, mas isso é entediante. Não seria bom receber um único e-mail com todos os destaques todos os dias, então você nem precisa entrar no servidor para verificar problemas? Este guia mostrará como configurar e-mails automatizados no Linux e no Windows.

Cobriremos especificamente isso para o Ubuntu e o Windows 8.1, com o Gmail sendo usado como o servidor de email do qual o email é enviado. Se você tiver outra versão do Linux ou Windows ou preferir usar algum outro serviço de e-mail, as instruções aqui devem ser facilmente adaptáveis.

E-mails automatizados no Linux

Vamos usar dois pacotes diferentes para realizar isso, ssmtp e mailutils, então instale os dois com o seguinte comando:

$ sudo apt-get install ssmtp mailutils

Depois de instalados, precisamos fazer algumas alterações no arquivo de configuração do SSMTP:

$ sudo vi /etc/ssmtp/ssmtp.conf

Edite o arquivo com essas alterações (é seguro apenas apagar todo o texto do arquivo e copiar / colar essas configurações, se desejar):

# 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 você terminar de editar o arquivo, altere as permissões, pois a senha do Gmail é armazenada em texto sem formatação.

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

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

É sempre mais seguro fazer o root do proprietário do arquivo, mas depois teríamos que usar o comando sudo em nosso script e isso nos levaria a uma senha, derrotando assim o propósito de automatizar todo esse processo.

Se você estiver usando um servidor compartilhado e estiver preocupado com a senha armazenada em texto sem formatação e legível pelo root, crie uma conta descartável do Gmail ou use um servidor de e-mail que não exige nenhum tipo de autenticação.

Para garantir que tudo esteja configurado corretamente, vamos tentar um email de teste:

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

"Teste" estará no corpo do e-mail e o assunto será "Testando configuração de e-mail". Verifique seu e-mail para confirmar o recebimento.

Escrevendo um script para os e-mails

Agora que podemos enviar e-mails a partir da linha de comando, vamos escrever um script que nos envie algumas informações básicas sobre nosso 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

Obviamente, você pode aprofundar muito o seu script e até tornar a formatação um pouco mais agradável, mas é assim que a saída aparece em nosso email:

Agora que o script foi escrito e testado, podemos usar o cron para executá-lo automaticamente na mesma hora todos os dias. Neste exemplo, configuraremos o email para ser enviado às 2:00 todas as manhãs, para que possamos percorrer os dados mais tarde naquele dia.
Agora que o script foi escrito e testado, podemos usar o cron para executá-lo automaticamente na mesma hora todos os dias. Neste exemplo, configuraremos o email para ser enviado às 2:00 todas as manhãs, para que possamos percorrer os dados mais tarde naquele dia.

$ crontab -e

Para e-mails de 2:00, adicione:

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

Escrevemos um artigo inteiro sobre arquivos crontab se você precisar de mais ajuda com essa parte.

E-mails automatizados no Windows

O envio de e-mails na linha de comando é possível por meio do PowerShell, mas descobrimos que implementar essa funcionalidade é muito mais fácil com aplicativos de terceiros, especialmente ao usar o Gmail. O SendEmail é um programa gratuito disponível para Windows que facilita a integração com o Agendador de Tarefas do Windows e com o Gmail. Clique no link acima para baixar a cópia mais recente e certifique-se de pegar a versão suportada pelo TLS.

Depois de fazer o download do SendEmail, extraia o arquivo zip e coloque o conteúdo em algum lugar no qual você possa armazená-lo enquanto você planeja enviar e-mails automatizados. Neste exemplo, vamos apenas armazenar o programa em C: SendEmail

Vamos testar o SendEmail para ter uma ideia rápida de como isso funciona. Abra um prompt de comando digitando cmd no menu Iniciar ou Executar (Ctrl + R).

Com o prompt de comando aberto, use o comando change directory para navegar para onde você armazenou os arquivos SendEmail.
Com o prompt de comando aberto, use o comando change directory para navegar para onde você armazenou os arquivos SendEmail.

cd C:SendEmail

Agora podemos tentar enviar um email de teste com o seguinte 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.'

Obviamente, substitua “username” e “password” pelas credenciais da sua conta antes de executar o comando.

Veja o que o comando acima realmente faz:

sendEmail

executa o programa.

-f

- a partir do endereço

-t

- endereçar

-s

- servidor SMTP

-xu

- Nome de usuário da conta

-xp

- Senha da conta

-u

- assunto do email

-m

- texto do corpo do email

Verifique sua caixa de entrada para se certificar de que recebeu o e-mail de teste e, em seguida, podemos passar a escrever um script que nos enviará as informações do servidor.

Escrevendo um script para os e-mails

Para aproveitar ao máximo nosso script, vamos escrevê-lo para o PowerShell. Abra o Windows PowerShell ISE digitando powershell_ise.exe em um prompt Executar (Ctrl + R).

No lado direito da janela ISE do PowerShell, você pode listar todos os comandos que o PowerShell é capaz de executar. Isso deve lhe dar um bom começo na geração dos tipos de informação que você precisa reportar. Em seu script, você também pode chamar programas de terceiros para gerar informações também (por exemplo, o SendEmail é um aplicativo de terceiros, mas o PowerShell e o cmd podem usá-lo para realizar tarefas que normalmente não conseguem).
No lado direito da janela ISE do PowerShell, você pode listar todos os comandos que o PowerShell é capaz de executar. Isso deve lhe dar um bom começo na geração dos tipos de informação que você precisa reportar. Em seu script, você também pode chamar programas de terceiros para gerar informações também (por exemplo, o SendEmail é um aplicativo de terceiros, mas o PowerShell e o cmd podem usá-lo para realizar tarefas que normalmente não conseguem).
Para nosso script de exemplo, verificaremos o uso atual de disco da unidade C, mostraremos os processos atualmente em execução e mostraremos todos os arquivos que estão sendo compartilhados atualmente pela rede.
Para nosso script de exemplo, verificaremos o uso atual de disco da unidade C, mostraremos os processos atualmente em execução e mostraremos todos os arquivos que estão sendo compartilhados atualmente pela rede.

# 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

Nesse script, várias informações são enviadas para C: SendEmail info.txt e, em seguida, o texto desse documento é enviado por e-mail para nós antes de ser excluído. Salve seu script com uma extensão de arquivo ps1 (arquivo PowerShell).

Com o script concluído, faça um teste rápido a partir de um aviso de execução para verificar se ele está funcionando corretamente.

Basta usar o

powershell

comando com um

-file

argumento e especifique o caminho para o seu script.

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

Verifique sua caixa de entrada para se certificar de que você recebeu o e-mail - se não, examine seu script em busca de erros de sintaxe. Veja como o e-mail gerado do nosso script de exemplo é semelhante:
Verifique sua caixa de entrada para se certificar de que você recebeu o e-mail - se não, examine seu script em busca de erros de sintaxe. Veja como o e-mail gerado do nosso script de exemplo é semelhante:
Você pode brincar com a formatação (como ecoar linhas vazias entre texto) para torná-la mais agradável em seu dispositivo ou, melhor ainda, usar um programa de terceiros que produzirá as informações necessárias em um formato mais legível do que o Windows ( o processo de script ainda será o mesmo).
Você pode brincar com a formatação (como ecoar linhas vazias entre texto) para torná-la mais agradável em seu dispositivo ou, melhor ainda, usar um programa de terceiros que produzirá as informações necessárias em um formato mais legível do que o Windows ( o processo de script ainda será o mesmo).

Depois de resolver os problemas no seu script, você pode usar o Agendador de Tarefas do Windows para automatizá-lo. Abra o Agendador de Tarefas do Windows no menu Iniciar.

Com o Agendador de Tarefas aberto, selecione Ação> Criar Tarefa Básica.
Com o Agendador de Tarefas aberto, selecione Ação> Criar Tarefa Básica.
Nomeie essa tarefa como algo como “Script de email diário” e clique em próximo. Na próxima tela, selecione a frequência com a qual você deseja que seu script de e-mail seja executado, provavelmente diariamente. Em seguida, escolha a hora em que você deseja que o script seja executado e clique em próximo.
Nomeie essa tarefa como algo como “Script de email diário” e clique em próximo. Na próxima tela, selecione a frequência com a qual você deseja que seu script de e-mail seja executado, provavelmente diariamente. Em seguida, escolha a hora em que você deseja que o script seja executado e clique em próximo.

Agora você deve estar na parte "Ação" do assistente, selecione "Iniciar um programa" e insira o mesmo texto que inserimos no prompt Executar antes para testar nosso script.

Recomendado: