Cron Backup
by @zfanmy
Set up scheduled automated backups with version tracking and cleanup. Use when users need to (1) Schedule periodic backups of directories or files, (2) Monit...
clawhub install cron-backupπ About This Skill
name: cron-backup description: Set up scheduled automated backups with version tracking and cleanup. Use when users need to (1) Schedule periodic backups of directories or files, (2) Monitor version changes and backup on updates, (3) Automatically clean up old backups to save space, (4) Create backup strategies for configuration files, code repositories, or user data.
Cron Backup
Automated backup scheduling with version detection and intelligent cleanup.
Quick Start
One-Time Backup
# Backup a directory with timestamp
./scripts/backup.sh /path/to/source /path/to/backup/dirBackup with custom name
./scripts/backup.sh /path/to/source /path/to/backup/dir my-backup
Schedule Daily Backup
# Set up daily backup at 2 AM
./scripts/setup-cron.sh daily /path/to/source /path/to/backup/dir "0 2 * * *"
Version-Aware Backup
# Backup only when version changes
./scripts/backup-versioned.sh /path/to/source /path/to/version/file /path/to/backup/dir
Cleanup Old Backups
# Keep only last 7 days of backups
./scripts/cleanup.sh /path/to/backup/dir 7
Core Capabilities
1. Directory Backup
2. Version-Triggered Backup
3. Scheduled Execution
4. Automatic Cleanup
Scripts
All scripts are in scripts/ directory:
backup.sh - Single backup executionbackup-versioned.sh - Version-triggered backupsetup-cron.sh - Cron job setupcleanup.sh - Old backup cleanuplist-backups.sh - List available backupsBackup Naming Convention
Backups follow the pattern: {name}_YYYYMMDD_HHMMSS.tar.gz
Examples:
openclabak_20260204_101500.tar.gzmyapp_20260204_000000.tar.gzWorkflow
Setting Up Automated Backups
1. Decide backup strategy - What to backup (source directory) - Where to store (backup directory) - How often (schedule) - Retention policy (cleanup days)
2. Run initial backup
./scripts/backup.sh /source /backup
3. Set up schedule
./scripts/setup-cron.sh daily /source /backup "0 2 * * *"
4. Configure cleanup
./scripts/setup-cron.sh cleanup /backup "" "0 3 * * *" 7
Version-Aware Backup Workflow
For software that changes version (like OpenClaw):
1. Identify version source
- Command: openclaw --version
- File: /path/to/version.txt
2. Set up versioned backup
./scripts/backup-versioned.sh /app /app/version.txt /backups/app
3. Schedule version check
./scripts/setup-cron.sh versioned /app /backups/app "0 */6 * * *"
Common Patterns
Pattern 1: Daily User Data Backup
# Backup workspace daily, keep 30 days
./scripts/setup-cron.sh daily /home/user/workspace /backups/workspace "0 2 * * *"
./scripts/setup-cron.sh cleanup /backups/workspace "" "0 3 * * *" 30
Pattern 2: Version-Aware Application Backup
# Backup when application updates
./scripts/setup-cron.sh versioned /opt/myapp /backups/myapp "0 */6 * * *"
./scripts/setup-cron.sh cleanup /backups/myapp "" "0 4 * * 0" 10
Pattern 3: Multi-Directory Backup
# Backup multiple directories
./scripts/backup.sh /home/user/.config /backups/config
./scripts/backup.sh /home/user/projects /backups/projects
Cron Schedule Format
Standard cron format: minute hour day month weekday
Common schedules:
0 2 * * *0 */6 * * *0 0 * * 0*/30 * * * *Cleanup Policies
Troubleshooting
chmod +x scripts/*.sh)systemctl status cron)π‘ Examples
One-Time Backup
# Backup a directory with timestamp
./scripts/backup.sh /path/to/source /path/to/backup/dirBackup with custom name
./scripts/backup.sh /path/to/source /path/to/backup/dir my-backup
Schedule Daily Backup
# Set up daily backup at 2 AM
./scripts/setup-cron.sh daily /path/to/source /path/to/backup/dir "0 2 * * *"
Version-Aware Backup
# Backup only when version changes
./scripts/backup-versioned.sh /path/to/source /path/to/version/file /path/to/backup/dir
Cleanup Old Backups
# Keep only last 7 days of backups
./scripts/cleanup.sh /path/to/backup/dir 7
π Tips & Best Practices
chmod +x scripts/*.sh)systemctl status cron)