Como configurar backup com Borg no DirectAdmin (CLI)
Este guia explica como configurar o BorgBackup via linha de comando (CLI) no DirectAdmin, com envio para storage externo via SSH.
Pré-requisitos
Execute no servidor com DirectAdmin:
yum -y install epel-release
yum -y install borgbackup
Gerar chave SSH
cat /root/.ssh/id_rsa.pub
Se não existir:
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub
Acesso ao storage via WinSCP
- Host: ip
- Porta: 22
- Usuário/Senha: CRIAR acessando via root
No Storage
adduser NOMEDOUSUARIO
passwd NOMEDOUSUARIO
mkdir /home/NOMEDOUSUARIO/backup
chown -R NOMEDOUSUARIO:NOMEDOUSUARIO /home/NOMEDOUSUARIO/backup
Adicionar chave pública no storage
cat ~/.ssh/id_rsa.pub | ssh -p 22 NOMEDOUSUARIO@ip \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Inicializar o repositório Borg
borg init --encryption=none ssh://NOMEDOUSUARIO@IP:PORTA/home/NOMEDOUSUARIO/backup
Script de pós-backup no DirectAdmin
Crie e edite o arquivo:
nano /usr/local/directadmin/scripts/custom/all_backups_post.sh
chmod 700 /usr/local/directadmin/scripts/custom/all_backups_post.sh
Conteúdo do script:
#!/bin/sh
REPOSITORY=ssh://NOMEDOUSUARIO@ip:porta/home/NOMEDOUSUARIO/backup
borg create -v --stats \
$REPOSITORY::'{hostname}-{now:%Y-%m-%d_%H:%M}' \
/home \
/var/www/html \
/etc \
/usr/local/directadmin > /tmp/borg-stat.tmp 2>&1
if [ "$?" -le 1 ]; then
borg prune -v $REPOSITORY --prefix '{hostname}-' \
--keep-daily=7 --keep-weekly=4 --keep-monthly=6
else
date >> /tmp/borg-stat.tmp
mail -s "backup failed on server `hostname -f`" suporte@webhaus.com.br < /tmp/borg-stat.tmp
fi
Testar o script
sh /usr/local/directadmin/scripts/custom/all_backups_post.sh
Agendar backup via DirectAdmin
- Acesse: Admin Backup/Transfer → Agendar Backup
- Marque: Todos os Usuários → Próximo Passo
- Defina o horário no Cron:
Minuto: 0 Hora: 5 Dia do Mês: * Mês: * Dia da Semana: *
- Em Local, use:
/home/admin/admin_backups
- Em Dados Selecionados, desmarque:
- Diretório de domínios
- Dados de contas de e-mail
Verificação final
Execute novamente:
sh /usr/local/directadmin/scripts/custom/all_backups_post.sh
Finalize clicando em Agendar.