Skip to main content
RunBook Academy

← All checklists in Linux

Quarterlylinux-backup

Checklist: Backup readiness

19 items ·16 critical ·3 warn ·0 info

Run this quarterly on the backup job. Its counterpart, linux-checklist-restore-readiness, runs on the restore. Both are needed: a job that runs perfectly and captures no ownership metadata produces archives that restore into an outage.

How to use this checklist

Run it once a quarter, against the backup job as it exists today rather than as it was designed. The commands assume BorgBackup; the equivalents for restic, bacula or a hosted agent differ in syntax and not in intent, so substitute the command and keep the assertion.

Two of the items cannot be closed from the backup host at all. key-escrow-tested requires opening the repository with the escrowed key copy from somewhere else, and restore-linkage is closed by the restore readiness checklist. If you find yourself marking either one green from a terminal on the protected host, you have not tested what the item asks about.

A failure here is not “the backup is broken” - the job may be running perfectly. It means the archives it produces will not carry you through the incident they exist for. Treat a red critical as a change that has to be made before the next quarter, and record the reasoning where the next person reviewing this will find it.

File the command output with the quarter’s record. The value of this checklist compounds: four quarters of borg info output is a capacity trend, and four quarters of verification timestamps is the only evidence that the schedule held.

Sign-off

  • Operator: _________________ Date: ___________
  • Reviewer: ________________ Date: ___________
  • Last verified restore: __________

Critical16 items

  1. systemctl cat borg-backup.service | grep -A5 ExecStart
  2. systemctl list-timers | grep -i backup; journalctl -u borg-backup.service --since "-30 days" | grep -ci "error\|fail"
  3. systemctl list-timers | grep -i -E "borg-check|restic-check"
  4. journalctl -u borg-check.service --since "-90 days" | tail -20
  5. grep -E "numeric-ids|xattrs|acls" /etc/systemd/system/borg-backup.service
  6. a=$(borg list --last 1 --short); borg list "::$a" --format '{user}:{group}{NL}' | sort | uniq -c | sort -rn | head
  7. borg info :: | grep -i encrypt
  8. grep -r "append-only" /etc/ssh/authorized_keys* /root/.ssh/authorized_keys 2>/dev/null

Warning3 items

  1. borg list :: | tail -5; borg list :: | wc -l
  2. borg info :: | grep -i "unique\|deduplicated"; df -h /srv/backup