Pagina inicial » como » Como gerar automaticamente e enviar por e-mail as estatísticas do computador

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

    É importante verificar vários dados e estatísticas de log 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, para que você nem precise entrar no servidor para verificar se há 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ê tem outra versão do Linux ou Windows, ou prefere 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 instala ssmtp mailutils

    Uma vez 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 apagar apenas todo o texto do arquivo e copiar / colar essas configurações, se desejar):

    # Esse endereço receberá os e-mails, então insira seu próprio e-mail aqui se quiser recebê-los.

    [email protected]

    # Especifique o servidor de email aqui (deixe como está se você estiver usando o Gmail).

    mailhub = smtp.gmail.com: 587

    # O nome de domínio do qual o email virá.

    rewriteDomain = gmail.com

    # O endereço de e-mail do qual esses e-mails devem estar.

    [email protected]

    # Configurações de SSL / TLS, necessárias para o Gmail e a maioria dos outros servidores de e-mail.

    UseTLS = Yes

    UseSTARTTLS = Sim

    # O nome de usuário e a senha da sua conta do Gmail.

    AuthUser = nome de usuário

    AuthPass = senha

    # Permitir a capacidade de especificar um endereço diferente daquele acima.

    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 tornar root o dono do arquivo, mas então 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 exija nenhum tipo de autenticação, em primeiro lugar..

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

    $ echo "Teste" | mail -s "Testando configuração de correio" [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 se você o recebeu.

    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 o nosso sistema..

    #! / bin / bash

    # Verifique o espaço no disco rígido

    echo "Espaço no disco rígido:"> /home/geek/email.txt

    df -h >> /home/geek/email.txt

    # Listar os usuários que estão conectados

    echo "Usuários atualmente logados:" >> /home/geek/email.txt

    quem >> /home/geek/email.txt

    # Listar processos atualmente em execução

    echo "Executando processos:" >> /home/geek/email.txt

    ps -e >> /home/geek/email.txt

    # Envie o email

    gato /home/geek/email.txt | mail -s "Informações diárias do servidor" [email protected]

    # Apague o arquivo que criamos

    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 se parece 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, vamos configurar o email para ser enviado às 02: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

    Nós escrevemos um artigo inteiro sobre arquivos crontab se você precisar de mais ajuda com esta 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 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 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.

    cd C: \ SendEmail

    Agora podemos tentar enviar um email de teste com o seguinte comando:

    sendEmail -f nome_do_usuá[email protected] -t nomedeusuá[email protected] -s smtp.gmail.com:587 -xu nome_do_usuário -xp senha -u "Teste assunto do e-mail" -m "Este é um e-mail de teste."

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

    Veja o que o comando acima realmente faz:

    enviar email 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

    -você - assunto do email

    -m - texto do corpo do email

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

    Escrevendo um script para os e-mails

    Para obter o máximo do 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).

    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.

    # Verifique o espaço no disco rígido

    echo "C: Uso do Drive:"> C: \ SendEmail \ info.txt

    Get-WmiObject win32_LogicalDisk -Filter "DeviceID = 'C:'" | Tamanho do objeto selecionado, FreeSpace >> C: \ SendEmail \ info.txt

    # Listar processos atualmente em execução

    echo "Executando processos:" >> C: \ SendEmail \ info.txt

    get-process >> C: \ SendEmail \ info.txt

    # Listar os arquivos / pastas atualmente compartilhados

    echo "compartilhamentos SMB:" >> C: \ SendEmail \ info.txt

    get-smbshare >> C: \ SendEmail \ info.txt

    # Envie o email

    Digite C: \ SendEmail \ info.txt | C: \ SendEmail \ sendEmail -f nomedeusuá[email protected] -t nomedeusuá[email protected] -s smtp.gmail.com:587 -xu nome de usuário -xp senha -u "Informações do servidor diário"

    # Apague o arquivo que fizemos

    rm C: \ SendEmail \ info.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, execute um teste rápido a partir de um prompt de execução para garantir que ele esteja funcionando corretamente.

    Basta usar o PowerShell comando com um -Arquivo argumentar e especificar o caminho para o seu script.

    PowerShell -file "c: \ SendEmail \ daily-email.ps1"

    Verifique sua caixa de entrada para verificar se você recebeu o e-mail. Se não, examine o script em busca de erros de sintaxe. Veja como o e-mail gerado do nosso script de exemplo se parece:

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

    Uma vez que você trabalhou fora as torções no seu script, você pode usar o Agendador de Tarefas do Windows para automatizá-lo. Abra o Agendador de Tarefas do Windows através do menu Iniciar.

    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ê gostaria que seu script de e-mail fosse 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 digite o mesmo texto que inserimos no prompt Executar antes para testar nosso script.

    Clique em seguinte e, em seguida, clique em Sim nesta janela:

    Clique em Concluir no último menu e pronto para agendar seus e-mails automáticos.