Skip to content
OpenSmartRoute
Skillv1.0.0

automating-database-backups

Automate database backup processes with scheduling, compression, and encryption. Supports PostgreSQL (pg_dump), MySQL (mysqldump), MongoDB (mongodump), and SQLite. Generates production-ready backup sc

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (skills/.curated/automating-database-backups/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill automating-database-backups. Copyright stays with the author (MIT).

Database Backup Automation

Generate production-ready backup scripts for PostgreSQL, MySQL, MongoDB, and SQLite with compression, encryption, scheduling, and retention policies.

Quick Start

PostgreSQL Backup

#!/bin/bash
set -euo pipefail
BACKUP_DIR="/var/backups/postgresql"
DB_NAME="mydb"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz"

pg_dump -h localhost -U postgres -d "$DB_NAME" \
  --format=custom \
  --compress=9 \
  --file="$BACKUP_FILE"

# Encrypt with GPG (optional)
gpg --symmetric --cipher-algo AES256 --batch --passphrase-file /etc/backup.key "$BACKUP_FILE"
rm "$BACKUP_FILE"

MySQL Backup

#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DB_NAME="mydb"
DATE=$(date +%Y%m%d_%H%M%S)

mysqldump -h localhost -u root -p"${MYSQL_PASSWORD}" \
  --single-transaction \
  --routines \
  --triggers \
  "$DB_NAME" | gzip > "${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz"

MongoDB Backup

#!/bin/bash
mongodump --uri="mongodb://localhost:27017" \  # 27017: MongoDB port
  --db=mydb \
  --out=/var/backups/mongodb/$(date +%Y%m%d_%H%M%S) \
  --gzip

Instructions

Step 1: Gather Requirements

Ask the user for:

  • Database type (PostgreSQL, MySQL, MongoDB, SQLite)
  • Database connection details (host, port, database name)
  • Backup schedule (cron expression or frequency)
  • Retention policy (days to keep)
  • Encryption requirement (yes/no)
  • Backup destination (local path, S3, GCS)

Step 2: Generate Backup Script

Use scripts/backup_script_generator.py to create a customized backup script:

python3 ${CLAUDE_SKILL_DIR}/scripts/backup_script_generator.py \
  --db-type postgresql \
  --database mydb \
  --output /opt/backup-scripts/mydb-backup.sh \
  --compression gzip \
  --encryption gpg

Step 3: Schedule with Cron

Use scripts/backup_scheduler.py to create cron entries:

python3 ${CLAUDE_SKILL_DIR}/scripts/backup_scheduler.py \
  --script /opt/backup-scripts/mydb-backup.sh \
  --schedule "0 2 * * *" \
  --user postgres

Step 4: Validate Backup

After backup completes, validate integrity:

python3 ${CLAUDE_SKILL_DIR}/scripts/backup_validator.py \
  --backup-file /var/backups/postgresql/mydb_20250115.sql.gz \
  --db-type postgresql

Step 5: Generate Restore Procedure

Create matching restore script:

python3 ${CLAUDE_SKILL_DIR}/scripts/restore_script_generator.py \
  --db-type postgresql \
  --database mydb \
  --output /opt/backup-scripts/mydb-restore.sh

Cron Schedule Reference

Schedule Cron Expression Description
Daily 2 AM 0 2 * * * Low-traffic window
Every 6 hours 0 */6 * * * Frequent backups
Weekly Sunday 0 2 * * 0 Weekly full backup
Monthly 1st 0 2 1 * * Monthly archive

Retention Policy Example

# Keep daily backups for 7 days
# Keep weekly backups for 4 weeks
# Keep monthly backups for 12 months

find /var/backups -name "*.gz" -mtime +7 -delete  # Daily cleanup
find /var/backups/weekly -mtime +28 -delete       # Weekly cleanup
find /var/backups/monthly -mtime +365 -delete     # 365: Monthly cleanup

Output

  • Backup Scripts: Database-specific shell scripts with compression and encryption
  • Cron Entries: Ready-to-install crontab configurations
  • Restore Scripts: Matching restore procedures for each backup type
  • Validation Reports: Integrity check results for backup files

Error Handling

Error Cause Solution
Connection refused DB not running Check service status: systemctl status postgresql
Permission denied Wrong credentials Verify user has backup privileges
Disk full No space Check space: df -h, clean old backups
Lock timeout Active transactions Use --single-transaction for MySQL

Resources

  • ${CLAUDE_SKILL_DIR}/references/postgresql_backup_restore.md - PostgreSQL backup guide
  • ${CLAUDE_SKILL_DIR}/references/mysql_backup_restore.md - MySQL backup guide
  • ${CLAUDE_SKILL_DIR}/references/mongodb_backup_restore.md - MongoDB backup guide
  • ${CLAUDE_SKILL_DIR}/references/sqlite_backup_restore.md - SQLite backup guide
  • ${CLAUDE_SKILL_DIR}/references/backup_best_practices.md - Security and storage best practices
  • ${CLAUDE_SKILL_DIR}/references/cron_syntax.md - Cron scheduling reference

Overview

Automate database backup processes with scheduling, compression, and encryption.

Prerequisites

  • Access to the PostgreSQL environment or API
  • Required CLI tools installed and authenticated
  • Familiarity with PostgreSQL concepts and terminology

Examples

Basic usage: Apply automating database backups to a standard project setup with default configuration options.

Advanced scenario: Customize automating database backups for production environments with multiple constraints and team-specific requirements.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-automating-da-75317c/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-automating-da-75317c.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-automating-da-75317c",
  "kind": "skill",
  "name": "automating-database-backups",
  "description": "Automate database backup processes with scheduling, compression, and encryption. Supports PostgreSQL (pg_dump), MySQL (mysqldump), MongoDB (mongodump), and SQLite. Generates production-ready backup scripts with retention policies and restore procedures. Trigger: \"automate database backups\", \"schedule backups\", \"create backup script\", \"disaster recovery\". Use when working with automating database backups. Trigger with 'automating', 'database', 'backups'.",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "database",
      "postgresql",
      "mysql",
      "mongodb",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Automate database backup processes with scheduling, compression, and encryption. Supports PostgreSQL (pg_dump), MySQL (mysqldump), MongoDB (mongodump), and SQLite. Generates production-ready backup scripts with retention policies and restore procedures. Trigger: \"automate database backups\", \"schedule backups\", \"create backup script\", \"disaster recovery\". Use when working with automating database backups. Trigger with 'automating', 'database', 'backups'."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "skills/.curated/automating-database-backups/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/skills/.curated/automating-database-backups/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/skills/.curated/automating-database-backups/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit,",
      "Grep,",
      "Glob,",
      "Bash(pg_dump:*),",
      "Bash(mysqldump:*),",
      "Bash(mongodump:*),",
      "Bash(cron:*),",
      "Bash(gpg:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# Database Backup Automation\n\nGenerate production-ready backup scripts for PostgreSQL, MySQL, MongoDB, and SQLite with compression, encryption, scheduling, and retention policies.\n\n## Quick Start\n\n### PostgreSQL Backup\n\n```bash\n#!/bin/bash\nset -euo pipefail\nBACKUP_DIR=\"/var/backups/postgresql\"\nDB_NAME=\"mydb\"\nDATE=$(date +%Y%m%d_%H%M%S)\nBACKUP_FILE=\"${BACKUP_DIR}/${DB_NAME}_${DATE}.sql.gz\"\n\npg_dump -h localhost -U postgres -d \"$DB_NAME\" \\\n  --format=custom \\\n  --compress=9 \\\n  --file=\"$BACKUP_FILE\"\n\n# Encrypt with GPG (optional)\ngpg --symmetric --cipher-algo AES256 --batch --passphrase-file /et",
  "cost": {
    "context_tokens": 1242
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-automating-da-75317c/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.