Se você administra uma instância do Mastodon ou gerencia uma conta pessoal, pode querer um backup local dos seus posts, seguidores e outros dados. O Mastodon oferece um recurso de exportação de conta integrado através da interface web, mas baixá-lo manualmente toda semana é cansativo. Este artigo explica como automatizar as exportações da conta do Mastodon usando um cron job no Linux ou macOS. Você aprenderá a autenticar com a API do Mastodon, escrever um script de backup e agendá-lo para execução diária ou semanal.
Principais Pontos: Automatizando Exportações da Conta do Mastodon
- Token da API do Mastodon em Preferências > Desenvolvimento: Necessário para autenticar o script de backup sem usar um navegador.
- Comandos curl e jq: Usados para baixar o arquivo de exportação e interpretar a resposta da API.
- crontab -e e sintaxe do cron: Agenda o script para execução no intervalo escolhido.
Por que Automatizar as Exportações da Conta do Mastodon
O Mastodon armazena os dados da sua conta no servidor da instância. Se a instância ficar offline ou você decidir migrar para outro servidor, ter uma exportação recente garante que você não perca seu conteúdo. A exportação inclui seus posts, anexos de mídia, listas de seguidores e seguidos, e configurações da conta. Visitar manualmente Configurações > Importar e Exportar > Exportar a cada poucos dias é demorado e fácil de esquecer. Um cron job executa o backup silenciosamente em segundo plano, fornecendo um arquivo atualizado em um cronograma definido por você.
O que a Exportação do Mastodon Contém
O arquivo de exportação é um tar.gz que contém arquivos CSV para seguidores, seguidos, listas, bloqueios de domínio e um arquivo JSON com sua outbox de posts públicos. Arquivos de mídia não são incluídos por padrão. Para fazer backup da mídia, você precisaria de um script separado que baixe cada URL de anexo do JSON da outbox. Este artigo foca no arquivo de exportação padrão.
Pré-requisitos
Antes de começar, você precisa de uma máquina com Linux ou macOS, bash, curl e jq instalados. Você também precisa de uma conta no Mastodon com acesso à API habilitado. Na maioria das instâncias, o acesso à API é habilitado por padrão. Você deve ter permissão de escrita no diretório onde o arquivo de backup será salvo.
Passos para Agendar uma Exportação da Conta do Mastodon com Cron
Passo 1: Criar um Token da API do Mastodon
- Abra suas preferências do Mastodon
Clique em Preferências na barra de navegação e depois em Desenvolvimento na barra lateral esquerda. - Crie uma nova aplicação
Clique em Nova Aplicação. Dê um nome como Script de Backup. Deixe todas as permissões marcadas. Clique em Enviar. - Copie seu token de acesso
Após a criação da aplicação, você verá um campo chamado Seu token de acesso. Copie a longa sequência de caracteres. Armazene em um local seguro. Você usará este token no script de backup.
Passo 2: Escrever o Script de Backup
Crie um arquivo chamado mastodon-backup.sh em um diretório de sua escolha, como /home/usuario/scripts/. Cole o seguinte conteúdo no arquivo:
#!/bin/bash
# Script de exportação da conta do Mastodon
# Substitua estas variáveis pelos seus valores
TOKEN="seu_token_de_acesso_aqui"
INSTANCE="mastodon.social"
BACKUP_DIR="/home/usuario/mastodon-backups"
# Cria o diretório de backup se não existir
mkdir -p "$BACKUP_DIR"
# Gera um timestamp para o nome do arquivo
TIMESTAMP=$(date +%Y%m%d%H%M%S)
# Solicita o arquivo de exportação
curl -s -H "Authorization: Bearer $TOKEN" \
"https://$INSTANCE/api/v1/exports/archive" \
-o "$BACKUP_DIR/mastodon-export-$TIMESTAMP.tar.gz"
# Verifica se o download foi bem-sucedido
if [ -f "$BACKUP_DIR/mastodon-export-$TIMESTAMP.tar.gz" ]; then
echo "Backup salvo: $BACKUP_DIR/mastodon-export-$TIMESTAMP.tar.gz"
else
echo "Erro: Backup falhou"
exit 1
fi
Passo 3: Tornar o Script Executável e Testá-lo
- Defina permissão de execução
Executechmod +x /home/usuario/scripts/mastodon-backup.sh. - Execute o script manualmente
Execute/home/usuario/scripts/mastodon-backup.shno terminal. Verifique o diretório de backup para confirmar que um arquivo tar.gz foi criado. - Verifique o conteúdo do arquivo
Executetar -tzf /home/usuario/mastodon-backups/mastodon-export-*.tar.gzpara listar os arquivos internos. Você deve ver arquivos CSV e um arquivo JSON.
Passo 4: Adicionar o Cron Job
- Abra seu crontab de usuário
Executecrontab -eno terminal. Se for a primeira vez, você pode ser solicitado a escolher um editor. - Adicione uma linha cron
Insira uma nova linha no final do arquivo. Para um backup diário às 2:00, use:0 2 /home/usuario/scripts/mastodon-backup.sh
Para um backup semanal todo domingo às 2:00, use:0 2 0 /home/usuario/scripts/mastodon-backup.sh - Salve e saia
O daemon cron carregará a nova agenda automaticamente. Você pode verificar os cron jobs ativos comcrontab -l.
Erros Comuns e Limitações
Arquivo de Backup Vazio ou Corrompido
Se o arquivo tar.gz baixado estiver vazio ou não puder ser extraído, o token da API pode estar inválido ou expirado. Gere um novo token em Preferências > Desenvolvimento e atualize o script. Confirme também que a URL da instância no script usa https e não inclui uma barra no final.
Cron Job Não Executa
O cron pode não ter as mesmas variáveis de ambiente que seu shell interativo. Se o script usar comandos como curl ou jq sem caminhos completos, o cron pode falhar. Especifique o caminho completo para cada comando no script. Por exemplo, use /usr/bin/curl em vez de curl. Execute which curl e which jq para encontrar os caminhos corretos no seu sistema.
Espaço em Disco Acumula com o Tempo
Cada arquivo de backup tem tipicamente de 100 KB a 1 MB, mas ao longo dos meses os arquivos se acumulam. Adicione uma etapa de limpeza ao script que exclua arquivos mais antigos que um certo número de dias. Por exemplo, adicione find "$BACKUP_DIR" -name "*.tar.gz" -mtime +30 -delete antes do comando de download para remover arquivos com mais de 30 dias.
Exportação do Mastodon vs Ferramentas de Backup de Terceiros
| Item | API de Exportação do Mastodon | Ferramentas de Terceiros |
|---|---|---|
| Dados incluídos | Posts, seguidores, seguidos, listas, bloqueios de domínio | Podem incluir mídia, mensagens diretas e configurações da conta |
| Autenticação | Token OAuth de Preferências > Desenvolvimento | Geralmente requer credenciais de login ou interação do usuário |
| Automação | Fácil com cron e curl | Pode exigir navegador ou interface gráfica |
| Backup de mídia | Não incluído por padrão | Algumas ferramentas baixam arquivos de mídia separadamente |
| Confiabilidade | API oficial do Mastodon, estável | Depende da ferramenta e de sua manutenção |
Agora você pode executar o script de backup manualmente sempre que precisar de uma exportação imediata. Para estender a automação, adicione uma etapa de notificação que envie uma mensagem quando o backup for concluído. Por exemplo, você pode adicionar uma linha que use mail ou um webhook para notificá-lo sobre sucesso ou falha. A abordagem baseada em cron oferece uma rotina de backup confiável e de baixa manutenção para sua conta do Mastodon.