backupally task

Gerencia tasks de backup configuradas no sistema.

Sintaxe

backupally task <SUBCOMANDO> [OPÇÕES]

Subcomandos

Subcomando Descrição
list Listar todas as tasks
create Criar nova task (interativo)
clone Clonar task existente
validate Validar configuração
enable Habilitar task
disable Desabilitar task
delete Remover task
show Exibir detalhes da task

task list

Lista todas as tasks configuradas.

backupally task list

Saída exemplo:

ID              STATUS    SCHEDULE      LAST RUN             NEXT RUN
mysql-prod      enabled   0 2 * * *     2026-02-11 02:00:00  2026-02-12 02:00:00
website-backup  enabled   0 3 * * *     2026-02-11 03:00:00  2026-02-12 03:00:00
mongodb-logs    disabled  0 */6 * * *   2026-02-10 18:00:00  -

Desde a 0.33.0, a saída humana também mostra prioridade e schedule reais em vez do - que antes mandava rodar task show linha a linha. A lista sai ordenada por id (antes vinha na ordem interna de um HashMap, sem garantia).

`task list -o json` (objeto rico desde 0.33.0)

backupally task list -o json
backupally task list -o json --enabled
backupally task list -o json --disabled

Antes da 0.33.0, o caminho sem filtro (o que uma UI normalmente consome) emitia só id + valid + error por item. Agora emite a task inteira achatada, com enabled, kind e schedule — o mesmo formato que --enabled/--disabled já usavam:

{
  "success": true,
  "command": "task.list",
  "data": {
    "summary": { "healthy": 0, "unhealthy": 0, "stopped": 0 },
    "items": [
      {
        "id": "mysql-prod",
        "valid": true,
        "enabled": true,
        "kind": "database",
        "schedule": "0 2 * * *",
        "name": "mysql-prod",
        "priority": 0
      }
    ]
  }
}

summary.healthy/unhealthy/stopped sempre vêm 0 — ignore o campo e conte items. Task cujo arquivo não carrega continua listada com o campo error, sem enabled/kind inventados.

task create

Inicia o wizard interativo para criar uma nova task.

backupally task create

O wizard solicita:

  1. ID da task (identificador único)
  2. Nome descritivo
  3. Tipo de backup (database, fileset)
  4. Configuração do target
  5. Storage de destino
  6. Agendamento (cron)

task clone

Clona uma task existente com novo ID.

backupally task clone <SOURCE_ID> <NEW_ID>

A task clonada é criada desabilitada por padrão.

Exemplo:

backupally task clone mysql-prod mysql-staging

task validate

Valida a configuração de uma ou todas as tasks.

backupally task validate [TASK_ID] [--deep]

Sem --deep (rápido, offline): sintaxe do TOML, campos obrigatórios e referências. A saída diz Sintaxe ok e avisa explicitamente:

Conectividade NAO foi verificada — use `task validate --deep`

Com --deep (desde 0.23.0): checagens de conectividade, todas read-only:

  • Resolve o host, inclusive docker:<container>[/<rede>]
  • Autentica no banco (SELECT 1 ou equivalente)
  • Confere credenciais de cada storage, inline ou do cadastro
  • Resolve todos os ${secret:...} referenciados
  • Verifica que os caminhos de fileset existem

Sai com código ≠ 0 se alguma checagem falhar. Driver sem teste de conexão aparece como pulado (⊘), nunca como aprovado.

Exemplo:

backupally task validate mysql-prod
backupally task validate mysql-prod --deep
backupally task validate --deep          # todas

task enable

Habilita uma task desabilitada.

backupally task enable <TASK_ID>

task disable

Desabilita uma task sem removê-la.

backupally task disable <TASK_ID>

task delete

Remove uma task do sistema.

backupally task delete <TASK_ID>

Um arquivo .bak é criado como backup antes da remoção.

task show

Exibe detalhes completos de uma task.

backupally task show <TASK_ID>

Exemplos

Criar e Habilitar Task

backupally task create
backupally task validate my-new-task
backupally task enable my-new-task

Clonar para Ambiente de Staging

backupally task clone mysql-prod mysql-staging
backupally task enable mysql-staging

Desabilitar Temporariamente

backupally task disable mysql-prod
# ... manutenção ...
backupally task enable mysql-prod

Localização dos Arquivos

Tasks são armazenadas em:

/etc/backupally/tasks.d/
├── mysql-prod.toml
├── website-backup.toml
└── mongodb-logs.toml

Hot Reload

O scheduler detecta automaticamente mudanças nos arquivos de task a cada 5 segundos. Não é necessário reiniciar o serviço.

By Borlot.com.br on 11/02/2026