Agendamento de Backups
Este guia mostra como configurar agendamento de backups.
Formato Cron
BackupAlly usa formato cron padrão.
5 Campos (Unix tradicional)
minuto hora dia mês dia_semana6 Campos (com segundos)
segundo minuto hora dia mês dia_semanaValores
| Campo | Valores |
|---|---|
| segundo | 0-59 |
| minuto | 0-59 |
| hora | 0-23 |
| dia | 1-31 |
| mês | 1-12 |
| dia_semana | 1-7 (1=Segunda, 7=Domingo) |
Dias da Semana
BackupAlly usa a convenção onde Segunda = 1 e Domingo = 7.
| Dia | Número |
|---|---|
| Segunda | 1 |
| Terça | 2 |
| Quarta | 3 |
| Quinta | 4 |
| Sexta | 5 |
| Sábado | 6 |
| Domingo | 7 |
Exemplos de Schedule
Diário
schedule = "0 2 * * *" # Todo dia às 2:00
schedule = "30 3 * * *" # Todo dia às 3:30Semanal
schedule = "0 3 * * 7" # Domingo às 3:00
schedule = "0 2 * * 1" # Segunda às 2:00Dias Úteis
schedule = "0 2 * * 1-5" # Segunda a sexta às 2:00Fim de Semana
schedule = "0 3 * * 6,7" # Sábado e domingo às 3:00A Cada N Horas
schedule = "0 */6 * * *" # A cada 6 horas
schedule = "0 */4 * * *" # A cada 4 horas
schedule = "0 */2 * * *" # A cada 2 horasA Cada N Minutos
schedule = "*/30 * * * *" # A cada 30 minutos
schedule = "*/15 * * * *" # A cada 15 minutosHorários Específicos
schedule = "0 9,13,18 * * *" # Às 9:00, 13:00 e 18:00Mensal
schedule = "0 3 1 * *" # Primeiro dia do mês às 3:00
schedule = "0 3 15 * *" # Dia 15 de cada mês às 3:00Último Domingo do Mês
schedule = "0 3 25-31 * 7" # Domingo entre dias 25-31Condições de Execução
Além do schedule, você pode definir condições.
Sintaxe
[condition]
when = "expressão"Funções Disponíveis
| Função | Retorno | Descrição |
|---|---|---|
loadavg() |
float | Média de carga (1 min) |
diskfree('path') |
bytes | Espaço livre |
time() |
string | Hora atual (HH:MM) |
dayofweek() |
int | Dia da semana (1-7) |
Operadores
| Operador | Significado |
|---|---|
< |
Menor que |
> |
Maior que |
<= |
Menor ou igual |
>= |
Maior ou igual |
== |
Igual |
!= |
Diferente |
&& |
E lógico |
|| |
Ou lógico |
Exemplos
# Executar se carga < 2.0
[condition]
when = "loadavg() < 2.0"
# Executar se espaço livre > 100GB
[condition]
when = "diskfree('/backup') > 100GB"
# Combinação
[condition]
when = "loadavg() < 2.0 && diskfree('/backup') > 50GB"
# Apenas em dias úteis (redundante se já no cron)
[condition]
when = "dayofweek() >= 1 && dayofweek() <= 5"Janelas de Execução
Limite o backup a um período específico.
[window]
start = "00:00"
end = "06:00"Se o schedule cair fora da janela, o backup não executa.
Exemplos
# Janela noturna
[window]
start = "22:00"
end = "06:00"
# Janela de almoço
[window]
start = "12:00"
end = "14:00"
# Horário comercial
[window]
start = "08:00"
end = "18:00"Prioridade
Controle a ordem de execução quando há múltiplas tasks.
[task]
priority = 90 # 0-100, maior = mais prioritárioSugestões de Prioridade
| Tipo | Prioridade Sugerida |
|---|---|
| Crítico (produção) | 90-100 |
| Importante | 70-89 |
| Normal | 40-69 |
| Baixa prioridade | 10-39 |
| Background | 1-9 |
Concorrência
Configure quantos backups podem executar simultaneamente.
# config.toml
[global]
max_concurrent_backups = 2Tasks aguardam slot disponível se o limite for atingido.
Exemplos Completos
Backup Crítico
[task]
id = "mysql-prod"
priority = 95
schedule = "0 2 * * *"
[condition]
when = "loadavg() < 3.0"
[window]
start = "00:00"
end = "06:00"Backup de Baixa Prioridade
[task]
id = "logs-archive"
priority = 20
schedule = "0 4 * * *"
[condition]
when = "loadavg() < 1.0 && diskfree('/backup') > 200GB"Backup Frequente
[task]
id = "transactions"
priority = 80
schedule = "*/15 * * * *" # A cada 15 minutos
[condition]
when = "loadavg() < 4.0"Iniciar o Scheduler
sudo systemctl enable backupally-scheduler
sudo systemctl start backupally-schedulerVerificar Próximas Execuções
backupally task listSaída mostra próxima execução de cada task.
Troubleshooting
Backup Não Executou
Verifique:
- Task está habilitada (
enabled = true) - Scheduler está rodando (
systemctl status backupally-scheduler) - Condição foi atendida
- Estava dentro da janela
Verificar Logs
sudo journalctl -u backupally-scheduler -f
By Borlot.com.br on 11/02/2026