Install
openclaw skills install webdav-backupWebDAV 备份工具 - 将 OpenClaw 工作目录备份到 WebDAV 服务器或本地目录(默认 `~/openclaw/output`)。当用户需要备份数据、同步文件到云端、做本地归档、或配置自动备份计划时使用此技能。
openclaw skills install webdav-backup将 OpenClaw 工作目录与基础配置一起备份到 WebDAV 服务器,或直接备份到本地目录。
如果只做本地备份,其实不需要配置 WebDAV。
~/openclaw/output编辑 ~/.openclaw/openclaw.json,在 skills.entries 中添加:
{
"skills": {
"entries": {
"webdav-backup": {
"enabled": true,
"env": {
"WEBDAV_URL": "https://dav.jianguoyun.com/dav/",
"WEBDAV_USERNAME": "your-email@example.com",
"WEBDAV_PASSWORD": "your-password"
}
}
}
}
}
# 仅在当前 shell 会话中临时设置
export WEBDAV_URL="https://dav.jianguoyun.com/dav/"
export WEBDAV_USERNAME="your-email@example.com"
export WEBDAV_PASSWORD="your-password"
更安全的建议:优先把配置写进
~/.openclaw/openclaw.json,并确保该文件权限受控;不建议把密码长期明文写入~/.bashrc/~/.zshrc。
优先级: 环境变量 > openclaw.json 配置
# 只做本地备份(默认保存到 ~/openclaw/output)
# 默认会备份:workspace + openclaw.json + cron + workspace/config
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --local-only
# 备份默认清单到本地 + WebDAV
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py
# 只备份你指定的单个目录/文件
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --source /path/to/data --local-only
# 指定备份文件名前缀
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --name my-backup-2025 --local-only
# 指定本地备份目录
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --local-only --local-dir ~/openclaw/my-backups
# 只上传 WebDAV,不保留本地副本
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --remote-only
使用 cron 设置定时备份:
# 每天凌晨2点做本地备份
cron add --schedule "0 2 * * *" --command "python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --local-only"
# 每天凌晨3点做本地 + WebDAV 双备份
cron add --schedule "0 3 * * *" --command "python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py"
# 查看本地备份
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --list
# 查看远端备份
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --list-remote
# 恢复本地最新备份到当前目录
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --restore latest
# 恢复到指定目录
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --restore latest --restore-dir ~/restore-test
# 恢复指定备份文件
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --restore ~/openclaw/output/openclaw-backup-20260310-010203.tar.gz --restore-dir ~/restore-test
# 如需覆盖已存在文件
python3 ~/.openclaw/workspace/skills/webdav-backup/scripts/backup.py --restore latest --restore-dir ~/restore-test --force
恢复阶段不要求死板固定流程,按场景自主判断即可:
openclaw/backup-manifest.json,确认备份里实际包含了哪些内容。openclaw/workspace/、openclaw/openclaw.json、openclaw/cron/ 等需要的部分拷回目标位置。--force。原则很简单:先解出来、先核对,再决定怎么落位。
默认不再只看 workspace 根目录,而是打包一份更完整的 OpenClaw 备份清单:
~/.openclaw/workspace/ - 主工作区(包含 memory、skills、文档、媒体等)~/.openclaw/openclaw.json - 主配置~/.openclaw/cron/ - 定时任务配置(如存在)~/.openclaw/workspace/config/ - workspace 内补充配置(如存在)openclaw/backup-manifest.json - 本次备份实际包含内容清单如果你传了 --source,则按你指定的目录或文件单独备份。
为避免备份包过大、夹带无意义缓存,默认会排除这些内容:
.git/.ace-tool/.clawhub/__pycache__/、*.pycnode_modules/.cache/tmp/、temp/output/、outputs/ 及迁移前快照目录.DS_Store这些排除规则也会写进 backup-manifest.json,方便你事后核对。
备份文件以 tar.gz 压缩包形式存储,命名格式:
openclaw-backup-YYYYMMDD-HHMMSS.tar.gz