/backup (/bkp) · admin¶
Backup do banco (cache/bot_database.db): um automático por dia, e pelo WhatsApp você cria, lista,
compara, restaura, recebe o arquivo ou apaga. Sem opção, mostra o banco atual e os backups.
O backup inclui os cadastros, históricos e configurações do /monitor.
Remover contatos ou reduzir o histórico local não altera os backups já existentes.
| Opção | Valor | Descrição |
|---|---|---|
| (nenhuma) | Banco atual (tamanho e entradas de cada tabela), quantos backups há, o último e o próximo automático | |
-now, -n |
Cria um backup agora (manual: fica até ser apagado) | |
-list, -l |
Lista os backups, numerados do mais novo para o mais antigo, com data, tamanho e motivo | |
-info, -i |
<nº> |
Detalhes do backup: data, motivo, versão do bot que o criou (com o commit, ex.: X.Y.Z (git+4465374/vX.Y.Z)) e as entradas de cada tabela, comparadas com o banco atual |
-restore, -r |
<nº\|nome> |
Restaura o backup. Sem -sim, só mostra o que vai acontecer e o comando para confirmar |
-sim |
Confirma: junto com -restore, a restauração; junto com -send -to outro chat, o envio |
|
-send, -s |
[nº] |
Envia o arquivo do backup (sem nº: o mais recente) no seu privado ou nos destinos do -to. Veja Enviar o arquivo |
-to |
<destino> |
Junto com -send: por e-mail, como anexo (email é o QRCODE_EMAIL_SMTP_TO, ou um endereço), ou noutro chat: um contato (/Jorge Pereira/), uma menção (@Fulano Da Silva), um grupo (/Grupo L200/) ou um número (+5521999999999) (pede -sim). Repita para vários. Veja Destinos |
-rm |
<nº\|all> |
Apaga o backup nº N (ou todos) |
/backup → o banco atual e os backups
/backup -now → cria um agora
/bkp -l → a lista
/backup -i 2 → o que tem no nº 2, comparado com o banco atual
/backup -r 2 → mostra o que vai acontecer e pede confirmação
/backup -r zapbot-20261001-030000 -sim → restaura
/backup -s → o arquivo do mais recente no seu privado
/backup -s -to eu@gmail.com → o mais recente, por e-mail
/backup -s 2 -to email → o nº 2, para o QRCODE_EMAIL_SMTP_TO
/backup -s -to /Jorge Pereira/ -sim → no privado de um contato
/backup -s -to @Fulano Da Silva -sim → num grupo, mencionando a pessoa
/backup -s -to email -to /Jorge Pereira/ -sim → por e-mail e no privado do contato
/backup -rm 3 → apaga o nº 3
💾 Backup
🗄️ Banco atual: 4.20 MB
message_edits 12 · messages 1.234 · polls 3 · price_alerts 2 · settings 47 · stats 980 · ...
📦 Backups: 7 (8.40 MB) em /app/cache/backups
🕐 Último: qui 01/10 03:00 (automático, 1.10 MB)
⏭️ Próximo automático: sex 02/10 03:00 (todo dia às 3h, guarda 7)
📤 Destino automático: só local
/backup -l
💾 Backups (3)
1. qui 01/10 03:00 · 1.10 MB · automático
2. qua 30/09 15:20 · 1.00 MB · manual
3. qua 30/09 03:00 · 1.00 MB · automático
Backup automático¶
Todo dia, a partir das 3h de Brasília (setting backup.hour), o bot cria um backup. Se estiver fora
do ar nesse horário, o backup sai assim que ele voltar, no mesmo dia. Desligue com
/set backup.enabled off.
A setting backup.to define para onde enviar o arquivo diário além de salvar localmente. O
padrão é "" (só local). Aceita os destinos do -to: email (o QRCODE_EMAIL_SMTP_TO), endereços
de e-mail, nome de contato ou grupo e número com DDI. Para vários destinos, escreva um -to para
cada um na setting.
/set backup.to email
/set backup.to voce@exemplo.com
/set backup.to /Grupo Familia/
/set backup.to +5521999999999
/set backup.to "-to email -to /Grupo Familia/"
/set backup.to ""
Configurar backup.to autoriza o envio diário do banco inteiro ao destino, sem pedir -sim a cada
dia. Para nomes com mais de um resultado, use o nome completo ou o número: o envio automático não
abre uma lista de escolha. Para uma pessoa mencionada num comando, configure seu nome ou número na
setting. E-mails usam o SMTP do bot e o mesmo limite de 20 MB do envio manual. Backups manuais e os
de antes de restaurar não são enviados por essa setting.
Ficam os 7 automáticos mais recentes (setting backup.keep); os mais antigos são apagados a cada
backup novo. A mesma conta vale para os backups "antes de restaurar". Os manuais (-now) nunca
são apagados sozinhos.
Se o backup diário falhar (ex.: disco cheio), o erro vai para o log e para os
alertas por e-mail (💾 Backup falhou). Se o envio falhar, o
arquivo local fica preservado e a falha vai para o log e para os alertas
(💾 Envio do backup falhou). O envio é tentado uma vez no dia, quando o backup é criado; outra
verificação no mesmo dia não repete o envio. Os demais destinos são tentados mesmo que um deles
falhe.
O que entra¶
O banco inteiro: mensagens guardadas (inclusive as apagadas e as editadas), settings, regras e
ocorrências do /watch, alertas de preço, lembretes e mensagens agendadas, enquetes e estatísticas.
A cópia é feita com o VACUUM INTO do SQLite (consistente, sem parar o
bot) e compactada com gzip.
As mídias (cache/media) não entram: depois de uma restauração, uma apagada com mídia que não
está mais no disco avisa que o arquivo não está disponível. A sessão do WhatsApp (volume
wwebjs_auth) também não.
Cada backup são dois arquivos em cache/backups/, no volume app_cache:
zapbot-AAAAMMDD-HHMMSS.db.gz: o banco compactado;zapbot-AAAAMMDD-HHMMSS.json: data, motivo, versão do bot e as entradas de cada tabela.
Restaurar¶
/backup -r <nº> mostra a data e o motivo e pede a confirmação, já com o nome do backup (um backup
novo no meio do caminho mudaria os números):
/backup -r 2 -sim
♻️ Backup restaurado: qua 30/09 15:20
message_edits 10 · messages 1.180 · settings 47 · ...
💾 O estado anterior ficou no backup zapbot-20261001-101530: para desfazer, /backup -r zapbot-20261001-101530 -sim
- O banco inteiro volta àquele momento; o que entrou depois se perde. Por isso, antes de restaurar, o bot faz um backup do estado atual (motivo "antes de restaurar"), e a resposta já traz o comando para desfazer.
- Os settings são recarregados na hora, sem reiniciar.
- Um backup de uma versão anterior também serve: as tabelas e colunas que ele não tinha ficam vazias.
Enviar o arquivo¶
O -send manda o arquivo .db.gz no seu privado. Com o -to, vai para outro lugar, como nos
outros comandos (Destinos):
- E-mail:
-to email(oQRCODE_EMAIL_SMTP_TO) ou um ou mais endereços (-to "a@x.com, b@y.com"). Vai como anexo, pelo mesmo SMTP do QR Code e dos alertas (QRCODE_EMAIL_SMTP_*, veja Configuração). - Outro chat: um contato, um grupo ou um número. Como o banco tem as mensagens guardadas de
todos os chats, o bot pede confirmação: repita com
-sim. - Vários: repita o
-to. Os e-mails de todos vão num e-mail só; cada chat recebe o arquivo (se falhar num, os outros recebem assim mesmo).
/backup -s -to fulano@gmail.com
📧 Backup de qui 01/10 03:00 enviado para fulano@gmail.com.
/backup -s -to /Jorge Pereira/
⚠️ O backup tem o banco inteiro: as mensagens guardadas de todos os chats, as apagadas, os settings...
Para enviar mesmo em 👤 Jorge Pereira, repita com -sim: /backup -send -to /Jorge Pereira/ -sim
/backup -s -to email -to /Jorge Pereira/ -to /Grupo L200/
⚠️ O backup tem o banco inteiro: as mensagens guardadas de todos os chats, as apagadas, os settings...
Para enviar mesmo em 👤 Jorge Pereira, 👥 Grupo sobre L200, repita com -sim: /backup -send -to email -to /Jorge Pereira/ -to /Grupo L200/ -sim
- O e-mail traz o código anti-phishing, como os outros do bot, e as instruções para restaurar.
- Backups acima de 20 MB não vão por e-mail (os provedores recusam anexos grandes): use o
-ssem-to. - Sem o SMTP configurado (
QRCODE_EMAIL_SMTP_HOSTe_USER), o bot avisa. - A forma antiga, com os e-mails direto no
-s(/backup -s 2 email), ainda funciona.
Guardar fora do servidor¶
Os backups ficam no mesmo volume do banco: se o volume for apagado (ex.:
make DOCK_REMOTE=1 destroy), eles vão junto. O /cache -a e o /cache -b também
apagam os backups. Para guardar uma cópia fora, use /backup -s (o arquivo chega no seu WhatsApp),
mande por e-mail (/backup -s -to seu@email.com) ou copie a pasta: