Voltar

RCSS — Rclone Cloud Simple Scripts

Conjunto de scripts Bash para gerenciamento automatizado de backups via rclone. Upload de projetos para Google Drive e outros clouds, limpeza por retenção configurável, restauração interativa e agendamento via cron.

BashRcloneGoogle DriveCronBackupShell Script

Contexto

O RCSS nasceu da necessidade de automatizar backups de múltiplos projetos em servidores Linux, eliminando processos manuais de upload e limpeza de arquivos antigos.

Os scripts são construídos sobre o rclone — ferramenta open source de sincronização com dezenas de provedores cloud — e oferecem uma camada simples de configuração via arquivo .env.

Scripts

ScriptDescrição
uploadBackup.shFaz upload de todas as pastas de projeto em BACKUP_ROOT para o cloud
cleanRemoteBackups.shRemove backups antigos do cloud com base na retenção configurada
restoreBackup.shDownload interativo de um backup específico do cloud
backup.envArquivo de configuração compartilhado

Configuração (backup.env)

Obrigatórias

VariávelDescrição
BACKUP_ROOTDiretório local contendo as pastas de projeto (ex: /opt/backups)
RCLONE_REMOTENome do remote configurado no rclone (ex: douglas:)

Retenção

VariávelDefaultDescrição
RETENTION_DAYS1Dias para manter backups locais
REMOTE_RETENTION_DAYS15Dias para manter backups no cloud
REMOTE_CLEANUP_SAFETY_DAYS2Margem de segurança antes da limpeza remota
DELETE_AFTER_UPLOADfalseDeletar local imediatamente após upload

Upload

VariávelDefaultDescrição
DRIVE_DESTINATIONBackupsPasta de destino no remote do cloud
IGNORED_FOLDERSscripts config bin logs lost+foundPastas ignoradas durante o upload
SKIP_DOTFILESfalseIgnora dotfiles por padrão

Flags do uploadBackup.sh

FlagDescrição
-pBarra de progresso
-vOutput verboso
-DAtiva DELETE_AFTER_UPLOAD
-sIgnora dotfiles (.env, .git/, etc.)
-o <path>Sobrescreve BACKUP_ROOT
-r <remote>Sobrescreve RCLONE_REMOTE
-d <folder>Sobrescreve pasta de destino no cloud
-i <folders>Adiciona pastas extras à lista de ignoradas
-a <file>Upload de arquivo único

Exemplos de uso

# Upload com barra de progresso
./uploadBackup.sh -p

# Deletar local após upload
./uploadBackup.sh -D

# Upload de arquivo específico
./uploadBackup.sh -a /opt/RCSS/sync.log -d Logs

# Restaurar backup interativamente
./restoreBackup.sh -p -v

# Limpeza do cloud (dry-run)
./cleanRemoteBackups.sh -d -v

Agendamento com Cron

# Upload diário às 03:00
0 3 * * * /opt/backup/uploadBackup.sh >> /opt/backup/sync.log 2>&1

# Limpeza do Drive todo domingo às 05:00
0 5 * * 0 /opt/backup/cleanRemoteBackups.sh >> /opt/backup/sync.log 2>&1

Stack

CamadaTecnologia
LinguagemBash (Shell Script)
SincronizaçãoRclone
CloudGoogle Drive (compatível com qualquer provider do rclone)
AgendamentoCron