1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# config.large-backups.toml
# Configuração otimizada para BACKUPS SQL GRANDES (6-8 GB)
#
# Caso de uso: Backups diários de bancos de dados (4 arquivos/dia, 6-8 GB cada)
# Características:
# - Upload com memória constante (streaming)
# - Retry robusto para arquivos grandes
# - Uploads sequenciais para não saturar conexão
# - Resumable upload (retoma de onde parou)
#===============================================================================
# CONFIGURAÇÕES GERAIS
#===============================================================================
[]
# Log detalhado para monitorar progresso de uploads grandes
= "info"
# IMPORTANTE: Salvar logs para diagnóstico
= "./logs/rustdrivesync-backups.log"
= "text"
#===============================================================================
# PASTA DE ORIGEM - BACKUPS
#===============================================================================
[]
# Pasta onde os backups SQL são gerados
= "/var/backups/database"
# Incluir subpastas (se houver backups organizados por data)
= true
# NÃO ignorar arquivos ocultos (alguns backups podem começar com .)
= false
# Não seguir symlinks (evitar duplicatas)
= false
# Ignorar apenas arquivos temporários
= [
"*.tmp",
"*.temp",
"*.partial",
"*.incomplete",
]
#===============================================================================
# GOOGLE DRIVE
#===============================================================================
[]
= "./credentials.json"
= "./token.json"
# RECOMENDAÇÃO: Criar pasta específica para backups
# target_folder_name = "Backups-SQL"
# OU usar ID da pasta existente:
= "1ABC123xyz"
= [
"https://www.googleapis.com/auth/drive.file"
]
#===============================================================================
# SINCRONIZAÇÃO - OTIMIZADA PARA ARQUIVOS GRANDES
#===============================================================================
[]
# Sincronização única (usar com cron/scheduler)
= "once"
# Se usar watch mode, intervalo de 1 hora (backups geralmente são espaçados)
# interval_seconds = 3600
# SEMPRE sobrescrever (backups mais recentes)
= "overwrite"
# CRÍTICO: Suportar arquivos de até 10 GB
= 10240
# OTIMIZADO: Chunks de 32 MB para uploads mais eficientes
# Reduz overhead de requisições HTTP
= 32
# IMPORTANTE: Apenas 1-2 uploads simultâneos
# Evita saturar conexão de internet
# Para backups muito grandes (> 10 GB), use 1
= 2
# SEMPRE verificar integridade (crítico para backups)
= true
# Preservar estrutura de pastas
# Exemplo: backups/2026-01/database1.sql → RustDriveSync/backups/2026-01/database1.sql
= true
# NÃO deletar no Drive (manter histórico de backups)
= false
#===============================================================================
# RETRY - ROBUSTO PARA ARQUIVOS GRANDES
#===============================================================================
[]
# Aumentar tentativas (arquivos grandes têm mais chance de timeout)
= 5
# Delay inicial maior (2 segundos)
= 2
# Exponential backoff: 2s → 4s → 8s → 16s → 32s → 64s → 120s
= 2.0
# Delay máximo de 2 minutos (permite recuperação de problemas de rede)
= 120
#===============================================================================
# NOTIFICAÇÕES - RECOMENDADO PARA BACKUPS
#===============================================================================
[]
# Habilitar notificações para saber quando backup foi enviado
= true
# Notificar quando completar
= true
# CRÍTICO: Notificar em caso de erro (backup não enviado!)
= true
# Notificações desktop (Linux/macOS/Windows)
= "desktop"
# ALTERNATIVA: Usar webhook (Slack, Discord, etc)
# notification_type = "webhook"
# webhook_url = "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
#===============================================================================
# ESTADO E CACHE
#===============================================================================
[]
# Arquivo de estado para rastrear uploads
= "./state-backups.json"
# Salvar estado frequentemente (a cada arquivo para backups grandes)
= 1
# Limpar estado antigo após 90 dias (manter histórico longo)
= 90
#===============================================================================
# EXEMPLO DE USO
#===============================================================================
#
# 1. Testar configuração (dry-run):
# rustdrivesync sync --config config.large-backups.toml --dry-run
#
# 2. Upload único:
# rustdrivesync sync --config config.large-backups.toml --once
#
# 3. Automatizar com cron (Linux - 2h da manhã todos os dias):
# 0 2 * * * /usr/local/bin/rustdrivesync sync --config /path/to/config.large-backups.toml --once >> /var/log/backup-sync.log 2>&1
#
# 4. Monitorar progresso:
# tail -f ./logs/rustdrivesync-backups.log
#
# 5. Verificar status:
# rustdrivesync status --config config.large-backups.toml
#
#===============================================================================
# PERFORMANCE ESPERADA
#===============================================================================
#
# Conexão: 100 Mbps (12.5 MB/s teórico)
# Velocidade real: ~8-10 MB/s (overhead HTTP/TLS)
#
# Arquivo de 7 GB:
# - Cálculo MD5: ~30 segundos
# - Upload: ~11-14 minutos
# - Total: ~12-15 minutos
#
# 4 arquivos de 7 GB (uploads sequenciais com max_concurrent=2):
# - Tempo total: ~50-60 minutos
#
# Memória usada: ~256 KB constante (streaming)
#
#===============================================================================
# OTIMIZAÇÃO OPCIONAL: COMPRESSÃO
#===============================================================================
#
# Para reduzir tempo de upload, comprimir antes:
#
# gzip -9 /var/backups/database/*.sql
# # Reduz tamanho em 70-90%
# # 7 GB → ~1 GB
# # Upload: 14 min → 2 min
#
# IMPORTANTE: Atualizar ignore_patterns para não ignorar .gz
# E ajustar scripts de backup para gerar arquivos comprimidos
#