1. Introdução
Fazer backup de um servidor Samba para um armazenamento WebDAV externo é uma estratégia eficiente para garantir redundância e segurança dos dados. Neste guia, vamos explorar métodos robustos usando ferramentas como rsync
e rclone
, além de soluções para problemas comuns.
2. Pré-requisitos
- Servidor Linux com Samba configurado
- Acesso a um servidor WebDAV (Nextcloud, OwnCloud, Seafile, etc.)
- Pacotes instalados:
sudo apt update && sudo apt install davfs2 rsync rclone curl -y # Debian/Ubuntu
sudo yum install davfs2 rsync rclone curl -y # CentOS/RHEL
3. Método 1: Montando WebDAV com davfs2 e Sincronizando via rsync
3.1. Montando o WebDAV como Sistema de Arquivos
sudo mkdir /mnt/webdav
sudo mount -t davfs -o noexec,nosuid,username=SEU_USUARIO,password=SUA_SENHA https://webdav.servidor.com /mnt/webdav
Configurações Adicionais no /etc/davfs2/davfs2.conf
use_locks 0 # Evita travamentos
gui_optimize 1 # Melhora performance
buf_size 102400 # Buffer maior para transferência
3.2. Sincronizando Dados do Samba para WebDAV
rsync -avz --partial --progress --stats --delete /caminho/do/samba/ /mnt/webdav/backup/
Opções Úteis do rsync:
--partial
→ Continua transferências interrompidas--progress
→ Mostra andamento em tempo real--stats
→ Exibe relatório final--delete
→ Remove arquivos no destino que não existem na origem
3.3. Desmontando o WebDAV
sudo umount /mnt/webdav
4. Método 2: Usando rclone (Recomendado para Conexões Instáveis)
4.1. Configurando o Rclone
rclone config
- Selecione “n” para novo remote
- Escolha o tipo “webdav”
- Insira URL, usuário e senha
4.2. Sincronização com Verificação
rclone sync /caminho/do/samba/ remote:webdav/pasta/ --progress --transfers=4 --checkers=8 --retries=3
Opções Avançadas do rclone:
--transfers=4
→ Paraleliza transferências--checkers=8
→ Verifica arquivos mais rápido--retries=3
→ Tenta novamente em falhas
5. Solução de Problemas Comuns
5.1. Erro: “Connection timed out”
- Aumente o timeout no
/etc/davfs2/davfs2.conf
:
server_timeout 300
5.2. Permissões Incorretas
- Ignore permissões no
rsync
:
rsync -avz --no-perms --no-owner --no-group /samba/ /mnt/webdav/
5.3. Muitos Arquivos Pequenos (Lentidão)
- Compacte antes com
tar
:
tar -czf - /samba/ | rclone rcat remote:webdav/backup.tar.gz
6. Automatizando com Cron
Adicione ao crontab -e
:
0 2 * * * /usr/bin/rsync -avz --partial /samba/ /mnt/webdav/backup/ >> /var/log/backup_samba.log 2>&1
Ou com rclone:
0 3 * * * /usr/bin/rclone sync /samba/ remote:webdav/ --log-file=/var/log/rclone.log
7. Conclusão
- Use
davfs2 + rsync
para conexões estáveis e arquivos grandes. - Prefira
rclone
para conexões instáveis ou muitos arquivos pequenos. - Sempre teste com
--dry-run
antes de executar em produção.