Como criar um sistema automático de alertas por e-mail em desktops Linux

por | 14/07/2023 | Configuração

Através de algumas ferramentas gratuitas, é possível configurar de forma bem simples um sistema automático de envio de alertas por e-mail no Linux.

Um sistema através do qual você será notificado sempre que determinados eventos ocorrerem em seu computador.

Vale lembrar, porém, que este sistema é destinado apenas a desktops, e não a servidores. Até mesmo porque uma das etapas de configuração envolve a inserção de uma senha em um mero arquivo de texto.

Em um servidor, por exemplo, isto deve ser evitado, e por motivos óbvios. Além disso, existem outros métodos disponíveis nestes casos, os quais envolvem inclusive criptografia.

Mas não se preocupe, tudo é bem fácil de ser entendido, e todos os procedimentos são bem simples. Vamos lá!

Pré-requisitos

Em primeiro lugar, é importante ressaltar que, para prosseguir, você deve cumprir com alguns pré-requisitos. Um deles diz respeito à conta/servidor de e-mail que será utilizada para o disparo dos alertas.

Você pode utilizar qualquer serviço/servidor de e-mail, obviamente. Porém, sugiro que você siga este artigo à risca, utilizando, dessa forma, o Gmail como provedor (o qual inclusive é gratuito).

Além disso, é importante que você crie uma nova conta no Gmail, apenas para o envio dos alertas por e-mail a partir do seu desktop Linux (não use seu e-mail pessoal).

Isto porque, caso o Google detecte uma taxa de envios muito alta, sua conta pode ser bloqueada. Assim, crie uma conta separada, apenas para trabalhar com estes alertas.

De qualquer forma, vale dizer que eu mesmo utilizo este sistema em minhas máquinas, para o envio de alguns poucos alertas diários, e nunca tive problemas.

E, é claro: sempre use este tipo de serviço e recurso de forma racional. Assim, você jamais terá problemas.

Agora, vamos aos pré-requisitos:

ItemDescrição
Sistema operacionalUma distro Linux
Servidor/serviço de e-mail externoGmail
Sistema de agendamentoCron
Ferramenta de disparo de e-mailsNullmailer

Como funcionam os alertas por e-mail

O sistema que vamos criar utiliza o Nullmailer como base. Trata-se de uma espécie de MTA (Mail Transfer Agent) de código aberto e gratuito.

O Nullmailer será o responsável pelo envio dos nossos alertas por e-mail. Ele fará tais envios através do uso da sua nova conta no Gmail, via protocolo SMTP.

E-mail

O Nullmailer é um utilitário bem pequeno, que pode ser encontrado, além disso, em vários repositórios.

Porém, existe outro elemento também muito importante em nosso pequeno sistema automático de alertas.

Trata-se do Cron, utilitário de agendamento bastante conhecido no Linux. O Cron será responsável pela automação, ou seja, para que os alertas sejam disparados sem sua intervenção manual (como usuário).

Mas não se preocupe, tudo será explicado abaixo em detalhes.

Como instalar o Nullmailer no Linux

Antes de mais nada, é importante que você instale o Nullmailer em sua distro Linux. Procure pelo utilitário nos repositórios da sua distribuição preferida e instale-o.

De qualquer forma, seguem algumas instruções de instalação.

Instalando o Nullmailer no Ubuntu e derivados

Basta executar o comando abaixo:

sudo apt install nullmailer

Instalando o Nullmailer no Arch Linux e derivados

Agora, para instalar a ferramenta no Arch Linux e em seus derivados, use o seguinte comando:

sudo pacman -S nullmailer

Com o Nullmailer instalado, você deve criar uma nova conta no Gmail.

Alertas por e-mail: conta no Gmail

Crie agora uma nova conta de e-mail no Gmail. Utilize, de preferência, um endereço que seja significativo, e relacionado com o seu propósito (por exemplo: [email protected]).

Aqui, entretanto, há um pequeno porém: para que o sistema funcione apropriadamente, você deve configurar “senhas de App” no Gmail.

Além disso, para que você possa utilizar as “senhas de App”, é necessário ativar a autenticação em duas etapas na sua nova conta junto ao Google.

Gmail: ativando autenticação em duas etapas

Após criar a conta no Gmail, você pode ativar a autenticação em duas etapas através deste link. Veja:

Alertas por e-mail - Gmail - Autenticação em duas etapas

Você deve clicar no link para ativação da proteção, conforme a imagem acima, e seguir as instruções apresentadas a seguir, as quais envolvem o envio e a confirmação de um código para/no seu celular.

Gmail: criando senhas de app

Além disso, para uso em sistemas externos, o Google exige que você utilize as “senhas de App” (ao invés da senha de acesso à sua conta no Gmail, por exemplo).

Neste caso, acesse mais uma vez a guia “Segurança”, nas configurações de sua conta junto ao Google (link acima).

Agora, role a tela para baixo, até chegar no grupo de opções “Como você faz login no Google”. Observe agora que a opção “Verificação em duas etapas” está habilitada. Clique nela.

Finalmente, na tela seguinte, role a tela para baixo e localize a opção “Senhas de app”. Note que ela está vazia, pois você ainda não criou nenhuma. Clique em “senhas de App”:

Gmail - Criando senhas de App

Na próxima tela, no campos “Selecionar app”, escolha a opção “E-mail”. Agora, no campo “Selecionar dispositivo”, escolha a opção “outro” e informe o nome de sua preferência (por exemplo, “Linux”).

Finalmente, clique no botão “Gerar”. A “senha de app” foi gerada, e você poderá conferi-la na próxima tela:

Gmail - Senha de app

Obs: guarde esta senha com cuidado, preferencialmente em um gerenciador de senhas. Esta “senha de app” será usada posteriormente, na configuração da ferramenta Nullmailer.

Alertas por e-mail: configurando o Nullmailer

Agora que você já criou uma nova conta no Gmail e também instalou a ferramenta Nullmailer, chegou o momento de configurá-la.

Basicamente, você vai trabalhar dentro do diretório /etc/nullmailer. Este diretório conta com os seguintes arquivos, após a instalação da ferramenta:

  • me: arquivo que inclui o hostname do seu computador Linux, o qual será usado durante os disparos de e-mails;
  • remotes: armazena dados necessários para a conexão com a sua nova conta no Gmail;

Além disso, será necessário criar dois outros arquivos, conforme abaixo:

  • defaultdomain: limita o uso do Nullmailer no seu desktop aos servidores nele constantes. Em nosso caso, ao Gmail;
  • adminaddr: contém o endereço para o qual o utilitário enviará os e-mails.

Agora, para deixar tudo pronto para os procedimentos seguintes, acesse o diretório do Nullmailer, através do comando abaixo:

cd /etc/nullmailer

Obs: não se esqueça de que os procedimentos abaixo, que envolvem a edição de 4 arquivos do Nullmailer, devem ser realizados dentro do diretório /etc/nullmailer.

Nullmailer: editando o arquivo “me”

O arquivo me na verdade é preenchido de forma automática durante a instalação do Nullmailer. Ele contém apenas o hostname da sua máquina. Recomendo que você não o modifique.

Obs: para edição dos arquivos necessários, você pode seguir este guia à risca e usar, dessa forma, o editor de texto nano. Mas também é possível usar o editor de sua preferência, é claro.

Nullmailer: editando o arquivo “remotes”

Por outro lado, o arquivo remotes deve conter as informações necessárias para a conexão com sua nova conta no Gmail (para o envio dos alertas por e-mail).

Abra agora o seu terminal e edite o arquivo remotes, através do comando abaixo:

sudo nano remotes

O arquivo possui um “padrão, que é o seguinte:

smarthost.example.org smtp --port=25 --auth-login --user=user --pass=pass --starttls

Basicamente, é necessário alterar apenas os seguintes elementos:

  • smarthost.example.org: deve ser substituído pelo servidor SMTP padrão do Gmail, ou seja, por smtp.gmail.com;
  • –port=25: deve ser substituído com a porta padrão do SMTP do Gmail, a qual é a --port=587;
  • -user=user: substitua pelo seu usuário do Gmail, o qual é o seu endereço de e-mail completo. Por exemplo: –[email protected];
  • –pass=pass: utilize aqui a “senha de app” do Gmail, que foi criada através de procedimentos constantes em um dos capítulos acima. Por exemplo: --pass=klbuidpfhwldprtd (a senha de app possui 16 caracteres).

Não modifique ou remova nada além do que foi descrito acima. Dessa forma, o conteúdo do seu arquivo remotes ficará bastante similar ao abaixo:

smtp.gmail.com smtp --port=587 --auth-login [email protected] --pass=klbuidpfhwldprtd --starttls

Finalmente, salve as modificações no arquivo remotes, em seu editor de texto. No nano, basta usar a combinação de teclas CTRL + O, seguida de um ENTER, para confirmar.

Agora, feche o arquivo, pressionando CTRL + X. Abaixo você tem uma prévia de como o arquivo ficará:

Nullmailer - Arquivo "remotes"

Nullmailer: editando o arquivo “defaultdomain”

Este arquivo por padrão não consta na instalação do Nullmailer. Ou seja, é preciso criá-lo, e para isto, você deve simplesmente utilizar o seguinte comando:

sudo nano defaultdomain

Através do comando acima, o arquivo defaultdomain foi criado e já está pronto para edição. Nele, digite apenas o domínio gmail.com.

Não insira mais nada neste arquivo. Agora, salve-o, através da combinação CTRL + O (seguida de um ENTER), e feche-o, com um CTRL + X.

Nullmailer: editando o arquivo “adminaddr”

O arquivo adminaddr também não existe por padrão. Crie-o agora, através do seguinte comando:

sudo nano adminaddr

Com o arquivo aberto, digite apenas o endereço completo da conta do Gmail (nova) que você vai utilizar para o disparo dos alertas por e-mail (por exemplo: [email protected]).

Após inserir o endereço de e-mail, salve as modificações, teclando CTRL + O, e finalmente feche o arquivo, através de um CTRL + X.

Ajustando o serviço Nullmailer via systemd

Antes de prosseguir, é importante ressaltar que o serviço do Nullmailer encontra-se, neste momento, parado. Além disso, ele não está definido para iniciar automaticamente após o boot.

Dessa forma, nós devemos utilizar o comando systemctl, da seguinte forma:

sudo systemctl start nullmailer
sudo systemctl enable nullmailer

Obs: observe que são dois comandos distintos, um para iniciar o serviço (start) e outro para fazer com que ele seja sempre inicializado com o sistema (enable).

Agora, verifique se está tudo Ok, através do seguinte comando:

systemctl status nullmailer

Se tudo estiver funcionando corretamente, você receberá uma saída semelhante à abaixo. Preste atenção especialmente ao status “active (running)” e “enabled” (ambos em verde):

Alertas por e-mail - Envio pelo Nullmailer

Alertas por e-mail: testando o Nullmailer

Se você seguiu todos os procedimentos acima, seu sistema de envio de alertas por e-mail está quase pronto.

Na verdade, tudo está pronto para o envio de e-mails à partir do seu desktop Linux. Faltam apenas os detalhes relacionados à automação via Cron (os quais veremos a seguir).

Permaneça no terminal e use o comando abaixo para testar o envio de e-mails pelo Nullmailer, através do comando sendmail:

echo "Subject: Teste Nullmailer" | sendmail -v endereco_Destinatario

Lembre-se apenas de substituir endereco_Destinatario por um de seus endereços de e-mail (o e-mail completo). Um e-mail onde você deseja receber o teste, por exemplo.

Observe que, aqui, você não deve usar o e-mail que foi criado através dos procedimentos acima (a nova conta no Gmail). Agora, neste ponto, você deve usar um e-mail diferente (seu e-mail pessoal, por exemplo).

Isto porque, através deste teste, estamos verificando se o Nullmailer consegue enviar os alertas via e-mail de forma correta, utilizando sua nova conta no Gmail.

O comando acima não exibirá nenhuma saída, fique tranquilo. Apenas verifique se um e-mail com o assunto “Teste Nullmailer” chegou na sua conta.

Se você recebeu o e-mail de teste com sucesso, parabéns, tudo está quase pronto! Agora, basta partir para a etapa de automação, logo abaixo.

Automação dos alertas por e-mail com o Cron

Agora que seu sistema de envio de alertas por e-mail está devidamente configurado, você precisa apenas definir que tipos de mensagens deseja exibir.

Particularmente, sou um tanto quanto neurótico em relação a backups. Minhas rotinas de backup incluem drives externos e serviços de armazenamento em nuvem, por exemplo.

Meus backups locais são feitos através da ferramenta rsync, a qual recomendo bastante. Ou seja, eu optei por receber alertas sempre que estes backups rodarem.

Automação

Trata-se de uma forma de acompanhar os processos e ser capaz de agir em caso de problemas. Na verdade, em relação a tais backups, localmente eu não uso nem mesmo scripts. Meus cron jobs contam apenas com os devidos comandos (via rsync).

Mas você pode, se desejar, trabalhar com outras ferramentas e até mesmo com seus próprios scripts, desde que exista uma saída adequada, é claro.

Além disso, existem vários outros tipos de alertas que podem ser automatizados. Como dizem, “o céu é o limite”.

Editando a crontab

É possível que o modo de edição de cron jobs mude um pouco, dependendo da distro Linux em questão.

Geralmente você pode utilizar o comando crontab, da seguinte forma:

crontab -e

Também pode acontecer de uma ou outra distribuição não contar com uma implementação do Cron. Sim, isto também acontece, acredite.

Particularmente, percebi que o EndeavourOS era uma destas distros, e devido a isto, instalei a ferramenta Cronie.

No EndeavourOS, por exemplo, e através do Cronie, posso editar minha crontab através do comando abaixo:

sudo nano /etc/cron.d/cronjobs

Obs: eu mesmo criei o arquivo cronjobs.

É claro que os modos de edição da crontab podem ser diferentes entre o meu computador e o seu, até mesmo dependendo das ferramentas utilizadas.

Além disso, talvez seja necessário um guia completo sobre o Cron e crontabs, devido às suas características e até mesmo a uma eventual complexidade.

Mas, uma vez que você tem a sua crontab aberta, pronta para edição, basta adicionar o comando necessário, o qual pode envolver um script ou um comando.

Por exemplo:

10 9 * * * rsync -r -t -v --progress -s /home/usuario/Documentos/ '/destino'

O comando acima executará o rsync, com todas as opções adicionadas, todos os dias às 09:10 da manhã.

O comando fará backup da pasta /home/usuario/Documentos/, armazenando-o em /destino.

Você também pode utilizar um script, por exemplo, do seguinte modo:

10 9 * * * /home/usuario/scripts/script.sh

De modo semelhante ao anterior, este novo comando executará o script script.sh todos os dias, às 09:10 da manhã.

Obs: você pode editar estes comandos de acordo com suas necessidades, especificando horários diferentes e até mesmo modificando outras opções de agendamento e execução (semanal, mensal, etc).

E assim por diante. Apenas não se esqueça de salvar as modificações (no caso do editor nano, use CTRL + O para salvar e CTRL + X para fechar o arquivo).

Configurando alertas por e-mail automáticos

Finalmente chegou o momento de definir os alertas por e-mail. Neste ponto, você deve editar sua crontab (veja detalhes no capítulo anterior) e adicionar o seguinte código, em primeiro lugar (no topo do arquivo):

[email protected]

Por exemplo:

[email protected]

Observe que você deve utilizar o e-mail no qual deseja receber os alertas por e-mail, e não o novo e-mail (no Gmail), criado através dos procedimentos acima, para uso do Nullmailer.

Sua crontab ficará mais ou menos assim:

Editando a crontab

Agora, salve o arquivo (CTRL + O) e feche-o (CTRL + X). A partir de agora, qualquer saída relacionada às tarefas agendadas via Cron será automaticamente enviada para o e-mail que você definiu (veja imagem acima). E sempre que as tarefas rodarem.

Você só precisa acompanhar as tarefas, de agora em diante, dependendo do agendamento e dos comandos/scripts adicionados na crontab (fique de olho em seu e-mail).

Também é importante lembrar que você pode utilizar este guia, bem como os procedimentos acima, porém adaptando-os de acordo com suas necessidades, ferramentas utilizadas e ambientes.

É como eu sempre digo: no Linux, sempre existe mais de um modo de executar uma mesma tarefa, e isto é sensacional.

Conclusão

Hoje você conheceu um método bem interessante, prático e rápido de configuração de alertas por e-mail no LInux, à partir de tarefas agendadas via Cron e mediante o uso do MTA Nullmailer.

Este método pode ser perfeitamente utilizado em seu desktop Linux, para que você seja capaz de acompanhar o andamento de suas tarefas agendadas, por exemplo.

Espero que este conteúdo tenha lhe agradado, e em caso de dúvidas ou sugestões, não hesite em deixar um comentário!

Até a próxima!

Compartilhe este conteúdo:

<a href="https://teclinux.com/author/marcos-zy/" target="_self">Marcos A.T. Silva</a>

Marcos A.T. Silva

Apaixonado por tecnologia desde tenra idade, trabalha com TI há mais de 20 anos. Tem no rock and roll (em suas mais variadas vertentes) uma válvula de escape, e adora escrever guias e tutoriais, além de ser um grande entusiasta do Linux e do software livre.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Pin It on Pinterest

Share This

Compartilhe

Compartilhe este post com seus amigos!