SkillHub

openclaw-backup-guide

v1.0.0

每小时自动备份OpenClaw工作区,包含SQLite数据库导出、可选rsync同步NAS及GitHub提交推送。

Sourced from ClawHub, Authored by lancelot3777-svg

Installation

Please help me install the skill `openclaw-backup-guide` from SkillHub official store. npx skills add lancelot3777-svg/openclaw-backup-guide

Backup Automation Skill

Automated backup system for OpenClaw workspaces with database, NAS, and GitHub integration.

What It Does

This skill provides automated hourly backups: - Database backup to SQLite - NAS sync via rsync - Git commit + push to GitHub for version control

Perfect for maintaining workspace continuity and disaster recovery.

Setup

1. Configure NAS Target (Optional)

Edit backup-nas.sh to set your NAS mount point:

NAS_PATH="/path/to/your/nas/backup"

If you don't use NAS, the script will skip that step gracefully.

2. Set Up Cron Job

Add to your crontab for hourly backups:

0 * * * * cd /path/to/workspace && node scripts/backup-db.js; bash scripts/backup-nas.sh; git add -A && git commit -m "Hourly backup: $(date '+%Y-%m-%d %H:%M %Z')" && git push origin main

OR use OpenClaw's built-in cron:

openclaw cron add --schedule "0 * * * *" --task "Hourly workspace backup" --command "cd /path/to/workspace && node scripts/backup-db.js && bash scripts/backup-nas.sh && git add -A && git commit -m 'Auto backup' && git push"

3. GitHub Authentication

Ensure you have: - Git configured with your credentials - GitHub SSH key added (or HTTPS token set) - Remote origin configured: git remote -v

Usage

Manual Backup

cd /path/to/your/workspace
node backup-db.js
bash backup-nas.sh
git add -A && git commit -m "Manual backup" && git push

Check Backup Status

# Check last backup commit
git log --oneline -1

# Check database backup
ls -lh workspace.db*

# Check NAS sync
ls -lh /your/nas/path/

Files

  • backup-db.js - Node.js script for database backup
  • backup-nas.sh - Bash script for NAS rsync
  • skill.json - Skill metadata
  • SKILL.md - This file (usage guide)
  • README.md - Overview

Requirements

  • Node.js 18+ (for backup-db.js)
  • Git (for version control)
  • rsync (for NAS sync, optional)
  • GitHub repository (for remote storage)

Customization

Change Backup Frequency

Edit the cron schedule: - Every hour: 0 * * * * - Every 30 min: */30 * * * * - Every 6 hours: 0 */6 * * * - Daily at 3am: 0 3 * * *

Add Custom Backup Logic

Extend backup-db.js with additional backup targets:

// Add S3 sync, Dropbox upload, etc.

Backup Retention

To limit backup history in Git:

# Squash old commits periodically
git rebase -i HEAD~100

Troubleshooting

Backup not running: - Check cron logs: tail -f /var/log/cron - Verify script permissions: chmod +x backup-nas.sh

Git push fails: - Verify SSH key: ssh -T [email protected] - Check remote: git remote -v

NAS sync issues: - Test rsync manually: rsync -av /source /destination - Check mount: mount | grep nas

Security Notes

  • Database backups may contain sensitive data
  • Ensure your GitHub repo is private if storing sensitive info
  • NAS should be on a secure network (Tailscale/VPN recommended)
  • Consider encryption for sensitive backups

License

MIT - Use freely, modify as needed.

Author

Created by Lance (lancelot3777) for OpenClaw workspace management.