Snapshot protege contra mudança que deu errado; backup fora da VPS protege contra tudo o mais (invasão, exclusão, cancelamento, disco perdido). Com o Object Storage isso fica automático em 10 minutos.
Pré-requisito: rclone configurado com o remote lura, veja Como conectar com rclone. Crie um bucket, por exemplo backups-vps.
1. O script
sudo nano /usr/local/bin/backup.sh:
#!/bin/bash
set -e
DATA=$(date +%F)
DEST="lura:backups-vps/$(hostname)"
TMP=/tmp/backup-$DATA
mkdir -p $TMP
# 1) bancos de dados (ajuste ou remova o que não usa)
mysqldump --all-databases -u root -pSENHA | gzip > $TMP/mysql-$DATA.sql.gz
# sudo -u postgres pg_dumpall | gzip > $TMP/postgres-$DATA.sql.gz
# 2) pastas importantes
tar -czf $TMP/www-$DATA.tar.gz /var/www
tar -czf $TMP/etc-$DATA.tar.gz /etc
# docker: volumes (pare containers sensíveis antes se precisar de consistência)
tar -czf $TMP/docker-volumes-$DATA.tar.gz /var/lib/docker/volumes
# 3) envia para o bucket
rclone copy $TMP $DEST/$DATA --transfers 4
# 4) apaga backups com mais de 30 dias no bucket
rclone delete $DEST --min-age 30d
rclone rmdirs $DEST --leave-root
rm -rf $TMP
echo "backup $DATA ok"
sudo chmod 700 /usr/local/bin/backup.sh
sudo /usr/local/bin/backup.sh # teste
rclone lsd lura:backups-vps/$(hostname) # confira
Dica: em vez da senha no script, use um arquivo
~/.my.cnfcom[client] user=root password=...(chmod 600) e remova-pSENHA.
2. Agendar todo dia às 3h
sudo crontab -e
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
3. Testar a restauração (a parte que todo mundo pula)
rclone copy lura:backups-vps/$(hostname)/2026-09-29 /restore
zcat /restore/mysql-2026-09-29.sql.gz | mysql -u root -p
tar -xzf /restore/www-2026-09-29.tar.gz -C /
Faça isso uma vez por mês. Backup que nunca foi restaurado é uma aposta.
Windows
Instale o rclone, configure o remote e use o Agendador de Tarefas com um .bat:
"C:\rclone\rclone.exe" copy "C:\Dados" lura:backups-vps/servidor-win/%date:~-4%-%date:~3,2%-%date:~0,2% --transfers 4
Quanto vai custar
Backup diário com 30 dias de retenção ocupa ~30× o tamanho de um backup (menos com compressão). Veja o consumo no painel do Object Storage e ajuste a retenção (--min-age).