Como vimos aqui, o Rclone é uma poderosa ferramenta de cópia de arquivos que pode servir como backup para enviar arquivos a diferentes provedores, como BackBlaze entre muitos outros.
Aqui descrevo uma forma de verificar múltiplos repositórios configurados no Rclone, no caso, do BackBlaze, e enviar uma mensagem de e-mail se algum deles não estiver com arquivos mais recentes que 2 dias.
Note que estamos utilizando o awscli para mandarmos e-mails de uma instância diretamente via AWS SES (Simple Email Service), então, uma breve configuração para instalar e configurar o AWS CLI:
sudo apt install awscli
aws configure
Para configurar, você deve fornecer a chave e senha com permissão para os serviço que deseja utilizar pelo AWS CLI e a região ao qual você vai se conectar. Você não precisa definir formato de saída para o uso que faremos.
Você pode testar a configuração de saída de email executando a linha a seguir:
aws ses send-email --from remetente@pad.vg --to destinatario@pad.vg --text "Esse é um teste de texto puro." --html "<h1>Olá Mundo/h1><p>Este é um teste de texto formatado</p>" --subject "Olá Mundo"
Crie o arquivo de script que será executado pelo crontab periodicamente, no caso, também estou salvando dentro do home do usuário:
nano checkbackup.sh
Copie o script do link abaixo, prestando atenção nas variáveis a seguir:
- BUCKET_PATHS, com o nome de cada repositório que você irá verificar seguindo os parâmetros do Rclone;
- DAYS_THRESHOLD, o número em dias da verificação de arquivos antes de serem declarados faltantes;
- MAILFROM, endereço de e-mail do remetente, este endereço precisa estar aprovado no AWS SES, seja uma identidade individual ou do domínio;
- MAILTO, endereço do destinatário;
GitHub: https://github.com/ivancarlosti/Rclone-Check-Backup/blob/main/checkbackup.sh
Habilite a execução do arquivo como script:
chmod +x checkbackup.sh
Acesse o crontab:
crontab -e
Adicione a linha que programará a tarefa, no caso, todo dia, às 05:00. Você pode construir novas entradas em crontab.guru caso tenha dificuldade. Note que eu navego para a pasta do script que é meu home primeiro, para depois executar o script:
0 5 * * * cd /home/ubuntu; ./checkbackup.sh >/dev/null 2>&1
Sabe o arquivo e seu script Rclone estará pronto para trabalhar. Você pode testá-lo executando:
./checkbackup.sh
Ele não deve retornar nenhum erro, porém se ele retornar uma chave JSON com um "MessageID" indica que ele funcionou e enviou uma mensagem de alerta no endereço designado.