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.

آیا این پاسخ به شما کمک کرد؟ 0 کاربر این را مفید یافتند (0 نظرات)