Status / health summary¶
/bin/status is the quick daily operator view. It is intentionally much
lighter than /bin/doctor: it only reads local
container state and never calls restic, rclone, hooks, mail,
webhooks or repository probes.
Use it for "is this container broadly healthy?" checks:
- release, hostname, timezone and masked repository;
- rendered crontab (or environment-derived preview in one-shot mode);
- enabled / disabled schedule state for
backup,check,forget,prune,replicateandrotate_log; - latest
last-*.jsonfiles under/var/log; - age and exit code for scheduled
backup,check,forget,pruneandreplicateruns; - compact
OK/WARN/FAILverdict.
/bin/health-summary is a symlink alias for the same command.
Quick start¶
docker exec -ti restic-backup-helper /bin/status
# Same command through the entrypoint dispatcher.
docker run --rm --env-file restic.env \
marc0janssen/restic-backup-helper:latest \
status
# Alias, useful when the name reads better in runbooks.
docker exec -ti restic-backup-helper /bin/health-summary
Example text output:
restic-backup-helper status: OK
release: 2.14.1-0.18.1
hostname: backup-node
time: 2026-05-13 Wed 23:25:00 CEST
repository: rclone:jottacloud:backups
warnings/failures: 0/0
== Schedules ==
crontab source: /var/spool/cron/crontabs/root (3 line(s))
job state cron
backup enabled 0 */6 * * *
check enabled 30 2 * * *
forget disabled -
prune enabled 0 3 * * 0
replicate disabled -
rotate_log enabled 0 0 * * 6
== Core Job Ages ==
job status exit age detail
backup ok 0 1h 12m last exit 0, age 1h 12m
check ok 0 20h 3m last exit 0, age 20h 3m
forget disabled - - disabled
prune ok 0 3d 4h last exit 0, age 3d 4h
replicate disabled - - disabled
Health rules¶
| Verdict | Meaning |
|---|---|
OK |
All enabled core jobs have a successful recent JSON summary. |
WARN |
An enabled core job has no last-*.json yet, looks stale for a simple cron expression, or a non-scheduled helper JSON reports a non-zero exit. |
FAIL |
An enabled core job (backup, check, forget, prune, replicate) has a non-zero last exit code. |
The status command treats helper failures (restore, restore-test,
snapshot-export, notify-test, etc.) as warnings, not hard failures,
because they are usually operator-triggered rather than cron-driven
service health. They are still visible in Recent JSON and
findings[].
Staleness is intentionally conservative and only applied when the cron expression is simple enough to understand:
*/N * * * *(every N minutes)M */N * * *(every N hours)M H * * *(daily)M H * * D(weekly-ish)M H D * *(monthly-ish)
The warning threshold is three expected intervals plus ten minutes of slack. Custom cron expressions still show age, but do not trigger stale warnings.
JSON mode¶
docker exec restic-backup-helper /bin/status --json | jq '.verdict, .findings'
docker run --rm --env-file restic.env marc0janssen/restic-backup-helper:latest health-summary --json
Schema: restic-backup-helper.status/1.
| Field | Type | Description |
|---|---|---|
schema |
string | Constant restic-backup-helper.status/1. |
command |
string | Constant status. |
release / hostname |
string | Baked release and container hostname. |
generated_at / generated_epoch |
string / integer | Generation time in container timezone and Unix epoch. |
verdict |
string | OK, WARN or FAIL. |
warnings / failures |
integer | Count of generated findings by severity. |
exit_code |
integer | 0 for OK / WARN, 1 for FAIL. |
runtime |
object | tz and masked repository. |
crontab |
object | source, path, line_count. |
schedules[] |
array | One entry per known schedule (job, enabled, cron, command). |
jobs[] |
array | Core job health rows (job, enabled, core, status, cron, path, present, exit_code, age_seconds, age_human, finished_at, detail). |
recent_json[] |
array | One entry per known /var/log/last-*.json (job, path, present, exit_code, age_seconds, age_human). |
findings[] |
array | Compact {level, message} summary of WARN / FAIL conditions. |
Exit codes¶
| Exit | Meaning |
|---|---|
0 |
Verdict is OK or WARN. |
1 |
Verdict is FAIL (at least one enabled core job has a non-zero last exit). |
2 |
Bad CLI usage. |
See also¶
- Diagnostics (doctor) — deeper support bundle with config checks and repository probe.
- Cron list — verbose crontab and schedule explanation.
- JSON summaries — per-worker
last-*.jsonfiles consumed by/bin/status.