Implementing Backup Strategies
Overview
Design and implement backup strategies for databases, file systems, and cloud resources using tools like tar, rsync, pg_dump, mysqldump, AWS S3, and cloud-native snapshot APIs. Covers full, incremental, and differential backup schemes with retention policies, encryption, and automated verification.
Prerequisites
tar, rsync, or restic installed for file-level backups
- Database client tools (
pg_dump, mysqldump, mongodump) for database backups
- AWS CLI configured with S3 write permissions (or equivalent GCP/Azure storage access)
- Sufficient storage capacity at backup destination (local, NFS, or object storage)
- Cron or systemd timer access for scheduling automated backups
- GPG or OpenSSL for backup encryption at rest
Instructions
- Inventory all data sources requiring backup: databases, application data directories, configuration files, secrets/certificates
- Classify data by RPO (Recovery Point Objective) and RTO (Recovery Time Objective) requirements
- Select backup strategy per data class: full daily + incremental hourly for databases, snapshot-based for block storage, rsync for file systems
- Generate backup scripts using appropriate tools (
pg_dump --format=custom, tar czf, rsync -avz --delete)
- Configure retention policy: daily backups kept 7 days, weekly kept 4 weeks, monthly kept 12 months
- Add encryption for backups containing sensitive data (
gpg --encrypt or S3 server-side encryption with KMS)
- Set up automated scheduling via cron jobs or systemd timers with proper logging
- Implement backup verification: restore to a test environment on a weekly schedule and validate data integrity
- Configure alerting for backup failures via email, Slack, or PagerDuty
Output
- Backup shell scripts with logging, error handling, and lock files to prevent concurrent runs
- Cron entries or systemd timer/service unit files
- Retention policy configuration (lifecycle rules for S3, cleanup scripts for local)
- Restore runbook with step-by-step recovery procedures
- Monitoring configuration for backup success/failure alerts
Error Handling
| Error |
Cause |
Solution |
No space left on device |
Backup destination full |
Verify retention cleanup is running; increase storage or reduce retention window |
pg_dump: connection refused |
Database not accepting connections or wrong credentials |
Check pg_hba.conf, verify connection string, and test with psql first |
rsync: connection unexpectedly closed |
Network interruption or SSH timeout |
Add --timeout=300 and --partial flags; use persistent SSH tunnel |
S3 upload failed: Access Denied |
IAM policy missing s3:PutObject permission |
Attach proper IAM policy; verify bucket policy allows writes from the backup source |
Backup file corrupted on restore |
Incomplete write or disk error during backup |
Add checksum verification (sha256sum) after backup; test restores regularly |
Examples
- "Create a backup strategy for a PostgreSQL database: full dump nightly to S3, WAL archiving for point-in-time recovery, 30-day retention."
- "Generate rsync scripts to mirror
/var/www to a remote NAS with incremental daily backups and weekly full backups."
- "Implement encrypted backups for a MongoDB replica set with automated restore testing every Sunday."
Resources
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: jeremylongshore-claude-code-plugins-plus-skills-implemen-23description: Implementing Backup Strategies4---5# Implementing Backup Strategies67## Overview89Design and implement backup strategies for databases, file systems, and cloud resources using tools like `tar`, `rsync`, `pg_dump`, `mysqldump`, AWS S3, and cloud-native snapshot APIs. Covers full, incremental, and differential backup schemes with retention policies, encryption, and automated verification.1011## Prerequisites1213- `tar`, `rsync`, or `restic` installed for file-level backups14- Database client tools (`pg_dump`, `mysqldump`, `mongodump`) for database backups15- AWS CLI configured with S3 write permissions (or equivalent GCP/Azure storage access)16- Sufficient storage capacity at backup destination (local, NFS, or object storage)17- Cron or systemd timer access for scheduling automated backups18- GPG or OpenSSL for backup encryption at rest1920## Instructions21221. Inventory all data sources requiring backup: databases, application data directories, configuration files, secrets/certificates232. Classify data by RPO (Recovery Point Objective) and RTO (Recovery Time Objective) requirements243. Select backup strategy per data class: full daily + incremental hourly for databases, snapshot-based for block storage, rsync for file systems254. Generate backup scripts using appropriate tools (`pg_dump --format=custom`, `tar czf`, `rsync -avz --delete`)265. Configure retention policy: daily backups kept 7 days, weekly kept 4 weeks, monthly kept 12 months276. Add encryption for backups containing sensitive data (`gpg --encrypt` or S3 server-side encryption with KMS)287. Set up automated scheduling via cron jobs or systemd timers with proper logging298. Implement backup verification: restore to a test environment on a weekly schedule and validate data integrity309. Configure alerting for backup failures via email, Slack, or PagerDuty3132## Output3334- Backup shell scripts with logging, error handling, and lock files to prevent concurrent runs35- Cron entries or systemd timer/service unit files36- Retention policy configuration (lifecycle rules for S3, cleanup scripts for local)37- Restore runbook with step-by-step recovery procedures38- Monitoring configuration for backup success/failure alerts3940## Error Handling4142| Error | Cause | Solution |43|-------|-------|---------|44| `No space left on device` | Backup destination full | Verify retention cleanup is running; increase storage or reduce retention window |45| `pg_dump: connection refused` | Database not accepting connections or wrong credentials | Check `pg_hba.conf`, verify connection string, and test with `psql` first |46| `rsync: connection unexpectedly closed` | Network interruption or SSH timeout | Add `--timeout=300` and `--partial` flags; use persistent SSH tunnel |47| `S3 upload failed: Access Denied` | IAM policy missing `s3:PutObject` permission | Attach proper IAM policy; verify bucket policy allows writes from the backup source |48| `Backup file corrupted on restore` | Incomplete write or disk error during backup | Add checksum verification (`sha256sum`) after backup; test restores regularly |4950## Examples5152- "Create a backup strategy for a PostgreSQL database: full dump nightly to S3, WAL archiving for point-in-time recovery, 30-day retention."53- "Generate rsync scripts to mirror `/var/www` to a remote NAS with incremental daily backups and weekly full backups."54- "Implement encrypted backups for a MongoDB replica set with automated restore testing every Sunday."5556## Resources5758- PostgreSQL backup guide: https://www.postgresql.org/docs/current/backup.html59- AWS S3 lifecycle policies: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html60- Restic backup tool: https://restic.readthedocs.io/61- Backup best practices (3-2-1 rule): https://www.veeam.com/blog/321-backup-rule.html6263---64> Converted and distributed by [TomeVault](https://tomevault.io/claim/jeremylongshore) — claim your Tome and manage your conversions.65<!-- tomevault:4.0:skill_md:2026-04-11 -->