360 Secure SkillHub
360 安全技能中心

Workspace Git Backup

为 OpenClaw 工作区或其他目录配置到 GitHub、GitLab 等远程 Git 仓库的定时备份,支持 macOS launchd 与 Linux cron,生成配置文件、备份脚本,并提供状态、日志和卸载管理命令。

cooperun
cooperun
热度 86.26
最近更新 2026-05-11 17:29:11
分类:自动化依赖:代码执行 / 读写文件 / 第三方 API应用场景:工作流 / 自动化脚本 / DevOps / 日程安排

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add workspace-git-backup
Metadata
name
workspace-git-backup
description
Set up automatic scheduled backups to GitHub or GitLab. Use when users want to backup their OpenClaw workspace or other directories. Supports GitHub CLI for easy repo creation. Works on macOS (launchd) and Linux (cron).

GitHub Backup

Automatic scheduled backup of any directory to a remote Git repository.

Setup Flow

When user asks for backup setup, follow these steps:

1. Ask for backup directory

Default: ~/.openclaw/workspace

2. Configure remote repository

If GitHub CLI (gh) is available and authenticated:

Ask user:

  • "新建 GitHub 仓库 还是 同步到已有仓库?"

New repo:

gh repo create <name> --private --source=<backup-path> --remote=origin

Existing repo:

# List repos
gh repo list --limit 50

# Add remote (user provides repo name or URL)
git -C <backup-path> remote add origin <url>

If no GitHub CLI:

  • Ask user for repository URL directly

3. Create config file

cat > ~/.openclaw/workspace/.backup-config.json << 'EOF'
{
  "backupPath": "<backup-path>",
  "gitRemote": "<repo-url>",
  "schedule": "0 12,0 * * *",
  "updateTimestamp": true
}
EOF

4. Install backup script

mkdir -p ~/.openclaw/scripts
cp <skill-path>/scripts/backup.sh ~/.openclaw/scripts/github-backup.sh
chmod +x ~/.openclaw/scripts/github-backup.sh

5. Install scheduled task

macOS (launchd):

bash <skill-path>/scripts/install-launchd.sh

Linux (cron):

bash <skill-path>/scripts/install-cron.sh

6. Optional: First backup

bash ~/.openclaw/scripts/github-backup.sh

Commands

After setup, user can:

Command Action
bash ~/.openclaw/scripts/github-backup.sh Manual backup
bash <skill-path>/scripts/manage.sh status Check status
bash <skill-path>/scripts/manage.sh logs View logs
bash <skill-path>/scripts/manage.sh uninstall Remove scheduled task

Configuration

Config: ~/.openclaw/workspace/.backup-config.json

Field Default Description
backupPath ~/.openclaw/workspace Directory to backup
gitRemote required Repository URL
schedule 0 12,0 * * * Cron: 12:00 & 00:00 daily
updateTimestamp true Update README timestamp

Backup Script Logic

Check for git changes
  └── No changes → exit
  └── Has changes → continue
       ↓
Update README timestamp (optional)
       ↓
git add . && git commit -m "chore: 自动备份"
       ↓
git push

Files Created

File Location
Backup script ~/.openclaw/scripts/github-backup.sh
Config ~/.openclaw/workspace/.backup-config.json
Log ~/.openclaw/logs/github-backup.log
launchd plist ~/Library/LaunchAgents/com.openclaw.github-backup.plist
cron entry Via crontab

Example Dialog

User: 帮我配置 workspace 自动备份

Agent:
1. 检测 gh CLI → 已登录
2. "新建仓库还是用已有的?" → "新建"
3. "仓库名称?" → "openclaw-backup"
4. "公开还是私有?" → "私有"
5. 执行: gh repo create openclaw-backup --private --source=~/.openclaw/workspace --remote=origin
6. 创建配置文件
7. 安装定时任务
8. "安装完成,每天 12:00 和 00:00 自动备份"