`runner state`
O Runner mantem uma cadeia de backup rotativa com integridade verificada para o
state file de cada app, em .backups/{app}/{UTC}-{sha12}.yml. Esses subcomandos expoem
a cadeia para intervencao manual depois de corrupcao de disco, incidente de ENOSPC, ou
qualquer situacao em que o state primario precise ser recuperado.
Resolve a issue #32.
Sintaxe
runner state backup <app>
runner state restore <app>
runner state restore --all
runner state list-backups <app>Subcomandos
| Subcomando | O que faz |
|---|---|
backup |
Forca um snapshot do state atual na cadeia. Idempotente por sha — rodar duas vezes sem mudanca nao cria entrada nova |
restore |
Restaura o backup integro mais recente sobre o primario |
list-backups |
Lista a cadeia (mais recente primeiro), com o veredito de integridade de cada entrada |
`restore`: o modo importa
| Invocacao | Comportamento |
|---|---|
runner state restore <app> |
Force: restaura mesmo se o primario parece ok |
runner state restore --all |
Seguro e idempotente: so restaura apps cujo primario esta corrompido ou ausente |
Use --all em recovery de servidor — ele nao toca no que esta saudavel. Use a forma
explicita quando voce sabe que o primario esta errado apesar de parsear.
Falha explicitamente quando nao ha backup valido. Nunca retorna sucesso sem ter restaurado de fato.
O que "integridade" significa
Cada entrada da cadeia so conta como integra quando as duas condicoes valem:
- O sha embutido no nome bate com o conteudo
- O conteudo parseia como
AppState
Um arquivo que parseia mas teve o sha alterado nao e integro — e vice-versa.
runner state list-backups myapp
runner state list-backups myapp --json
runner state list-backups doesnotexist --json # → {"app":…,"backups":[],"count":0}App inexistente devolve lista vazia com count: 0, nao erro — o contrato e estavel
para quem consome via JSON.
Flags
| Flag | Descricao |
|---|---|
--all |
So em restore: varre todas as apps, restaurando apenas as corrompidas |
-o, --output |
human | json | yaml |
--json |
Output em JSON |
--insecure |
Bypass dos guards de seguranca |
`state` vs `config-backups`
| Comando | Faz backup do que |
|---|---|
state |
O state file: versao corrente, instance, historico de deploy |
| `config-backups` | Manifesto (.deploy.yml) + secrets + state, como snapshot unico |
Ver tambem
- `runner config-backups`
- `runner adopt` — quando nem o backup sobrou, mas o container esta vivo
- `runner doctor`