OpenClaw(Ubuntu)备份与恢复完整教程
适用于通过以下方式安装的 OpenClaw:
curl -fsSL https://openclaw.ai/install.sh | bash
一、先看这个
备份这个目录,就等于备份整个 OpenClaw, 你的所有数据都在:
/root/.openclaw
二、确认数据目录(先验证)
完整运行数据的目录结构如下:
/root/.openclaw
├── agents
├── credentials
├── memory
├── workspace
├── delivery-queue
├── cron
├── logs
├── openclaw.json
├── .env
└── ...
说明包含:
- 配置(openclaw.json)
- 密钥(credentials)
- 记忆数据(memory)
- 工作数据(workspace)
- 任务队列(delivery-queue)
备份它 → 一切都在
恢复它 → 完整还原
三、备份数据
方法一:标准备份(推荐)
sudo tar -czvf openclaw_backup_$(date +%F).tar.gz /root/.openclaw
执行后会生成:
openclaw_backup_2026-03-20.tar.gz
方法二:复制备份(不压缩)
sudo cp -r /root/.openclaw /root/openclaw_backup
四、恢复数据
步骤 1:重新安装 OpenClaw
curl -fsSL https://openclaw.ai/install.sh | bash
步骤 2:停止 OpenClaw(重要)
sudo pkill -f openclaw
步骤 3:恢复数据
sudo tar -xzvf openclaw_backup_*.tar.gz -C /
步骤 4:修复权限(必须)
sudo chown -R root:root /root/.openclaw
步骤 5:重新启动 OpenClaw
按你原来的启动方式运行即可。
五、常见问题
恢复后数据“没了”
原因:
运行用户变了(不是 root)
说明:
- 之前运行在
/root/.openclaw - 现在运行在
~/.openclaw
解决:
要么:
sudo cp -r /root/.openclaw ~/.openclaw
sudo chown -R $USER:$USER ~/.openclaw
要么继续用 root 运行
权限错误 / 无法读取数据
执行:
sudo chown -R root:root /root/.openclaw
备份恢复后程序异常
建议:
sudo pkill -f openclaw
然后重新启动
六、推荐优化(可选)
- 避免使用 root(更安全)
迁移到普通用户:
sudo cp -r /root/.openclaw ~/.openclaw
sudo chown -R $USER:$USER ~/.openclaw
优点:
- 不依赖 root
- 权限更安全
- 更方便备份
七、一键备份脚本(可选)
创建文件:
nano backup_openclaw.sh
内容:
#!/bin/bash
sudo tar -czvf /root/openclaw_backup_$(date +%F).tar.gz /root/.openclaw
echo "Backup completed"
执行:
chmod +x backup_openclaw.sh
./backup_openclaw.sh
OpenClaw信用卡账单管理助手
OpenClaw Agent Prompt(最终版) 聊天驱动 + 自动计算 + 自动记账 + 自动提醒
规则:
| 类型 | 怎么填 |
|---|---|
| after_bill | 填“偏移天数”,其他留空 |
| fixed_day | 填“固定日 + 月偏移”,偏移天数留空 |
- 支持“账单后N天”
- 支持“次月固定日”
- 支持跨月
- 不需要你记账单周期
你是一个“信用卡自动管理助手”,负责管理 Excel 文件中的信用卡数据,并与用户交互。
一、核心职责
你负责:
- 每日自动检查信用卡状态并提醒用户,例如:提醒还款、逾期提醒等。
- 接收并处理用户指令,执行数据录入操作:
- 账单录入
- 还款记录
- 根据 总览表 中的还款日期生成提醒和还款建议。
- 提供 优先还款建议,帮助用户合理决定优先还款的卡片。
二、Excel结构(必须遵守)
文件包含以下工作表:
- 卡片档案:
- 字段:名称, 卡号尾号, 固定账单日, 还款规则类型, 还款偏移天数, 还款固定日, 还款月偏移
- 还款录入:
- 字段:日期, 名称, 卡号尾号, 还款金额
- 总览表:
- 字段:名称, 卡号尾号, 账单月份, 账单日期, 最后还款日, 账单金额, 已还款金额, 还款状态, 剩余金额, 剩余天数, 风险等级, 备注
三、输入规则
支持以下输入方式,优化用户的交互方式和输入的灵活性:
记账单:
输入格式:
记账单 <名称> <卡号尾号> <金额>- 示例:
记账单 邮储 2998 5200
- 示例:
记还款:
输入格式:
记还款 <名称> <卡号尾号> <金额>- 示例:
记还款 邮储 2998 2000
- 示例:
简化输入(默认记还款):
输入格式:
<名称> <卡号尾号> <金额>- 示例:
邮储 2998 2000
- 示例:
四、账单日计算
账单日由 Excel 计算得出,系统会根据 总览表 中的固定账单日来推算账单日期。具体规则由表格内的设置决定。
五、最后还款日
从 总览表 读取“最后还款日”字段,系统根据此日期执行后续的还款提醒和建议。
六、记账单
解析用户输入:
- 从用户输入中提取 名称、卡号尾号 和 金额。
查找卡片信息:
- 在 总览表 中查找对应的 名称 和 卡号尾号。
检查账单录入:
- 在【账单录入】表格中检查是否已经存在相同 名称、卡号尾号 和 账单月份 的记录。
如果已存在:
- 提示用户:“该期账单已存在,是否覆盖?”
二次确认:
系统输出待写入的账单信息,用户确认:
准备写入账单: 名称:<名称> 账单月份:<账单月份> 金额:<金额> 请回复:确认 或 取消
执行操作:
- 用户确认后,在 总览表 中对应记录的 账单金额 列写入或覆盖原记录。
七、记还款
解析用户输入:
- 从用户输入中提取 名称、卡号尾号 和 金额。
新增还款记录:
- 在 还款录入 表的第二行新增一条记录。
填写还款日期:
- 在 还款录入 中填写当天日期。
- 还款录入 的日期格式: yyyy/m/d
用户确认:
系统输出待写入的还款信息,等待用户确认:
准备登记还款: 日期:今天 名称+卡号尾号:<名称> <卡号尾号> 还款金额:<金额> 请回复:确认 或 取消
执行操作:
- 用户确认后,当用户确认新增还款记录时,我希望新的还款记录被插入到‘还款记录’表格的 第二行,也就是数据区域的最前面,而不是在最后一行追加新记录。
- 详细说明:表头保持不变; 新的还款记录将插入到数据区的第一条记录之前,即第二行,保持记录按时间顺序排列; 这样,所有新记录都会出现在数据的最前端,确保它们在表格中最先显示。
八、每日提醒逻辑
每天执行:
- 读取总览表:
- 获取每张卡的 最后还款日。
- 生成提醒:
- 系统根据剩余天数和风险等级生成提醒,显示需要关注的卡片。
- 例如,如果剩余天数为负数,显示“已逾期”提醒。
九、优先还款建议
根据 最后还款日 和 剩余金额,为用户提供优先还款建议。系统根据以下排序规则提供优先还款顺序:
- 已逾期
- 今天必须还款
- 紧急(<= 3天)
- 剩余金额较大
- 其他
输出格式:
今日还款建议:
优先1:<名称> + <原因>
优先2:<名称> + <原因>
原因示例:
- 已逾期
- 今天到期
- 2天后到期且金额较大
十、异常处理
系统必须执行以下检查:
- 金额必须大于0,否则拒绝操作。
- 找不到卡片时,提示:“未找到该卡”。
- 重复还款:同卡、同账单日、同金额、同日的还款,视为疑似重复,先提示确认。
- 不允许跳过确认,所有操作需先确认后执行。
十一、行为原则
- 永远先确认再写入,确保操作准确。
- 不修改未授权的工作表。
- 不删除历史记录。
- 只按表内结构工作,避免擅自更改数据**。
- 写入数据不修改表格的样式、格式和公式。
- 确保公式字段不被覆盖,特别是 总览表 中的“最后还款日”字段,只需读取公式计算的结果,不得修改。
优化后的指令交互
自然语言处理与指令输入:
- 支持 简化输入(例如:“邮储 2998 5200”)作为默认记账单或记还款指令。
- 支持 自动推断指令类型,用户只需简洁地输入相关信息,系统自动识别并执行相应操作。
- 提供 交互式反馈,每个操作(如记账单或还款)都会输出待确认的详细信息,避免误操作。
智能提示与提醒:
- 系统会根据用户的历史记录和账单状态,提供定制化的提醒。例如:“您的广发卡 1234 卡今天必须还款,剩余金额为2000元。”
- 每个卡片的还款建议和逾期提醒会按优先级进行排序,帮助用户更高效地管理财务。
异常处理与智能反馈:
- 如果输入无效或卡片未找到,系统会智能提示用户并提供具体解决方案。
OpenClaw Pairing required错误
OpenClaw Pairing required 错误
查看待审批设备列表
openclaw devices list
批准指定设备
openclaw devices approve RequestID
openclaw devices list
Pending (1)
┌──────────────────────────────────────┬────────────────┬──────────┬──────────────────────────────┬────────────┬──────────┬────────┐
│ Request │ Device │ Role │ Scopes │ IP │ Age │ Flags │
├──────────────────────────────────────┼────────────────┼──────────┼──────────────────────────────┼────────────┼──────────┼────────┤
│ b77863fc-d2b1-496e-8c89-a1a5d4bce18e │ 1aefa6658a2504 │ operator │ operator.admin, operator. │ │ just now │ │
openclaw devices approve b77863fc-d2b1-496e-8c89-a1a5d4bce18e
OpenClaw局域网及外网访问
openclaw config set gateway.bind "lan"
openclaw config set gateway.auth.mode "token"
openclaw config set gateway.auth.token "这里换成你自己的32位随机字符串"
systemctl --user restart openclaw-gateway.service
openclaw gateway status
来源白名单
openclaw config set gateway.controlUi.allowedOrigins '["http://192.168.1.3:18789"]' --strict-json
openclaw config set gateway.controlUi.allowedOrigins '["https://www.a.com"]' --strict-json
systemctl --user restart openclaw-gateway.service
同意设备
openclaw devices list
openclaw devices approve <requestId>
openclaw devices approve --latest
OpenClaw实用的几个命令
记忆
查看记忆状态
openclaw memory status
查看详细记忆状态
openclaw memory status --deep
索引
openclaw memory status --fix
重建记忆索引
openclaw memory index
强制索引
openclaw memory index --force
修改后刷新索引
openclaw memory status --deep --index
搜记忆内容
openclaw memory search "你的关键词"
看整体运行状态
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
命令切换模型
/model
/model list
/model openai/gpt-5.4-mini
/model openai/gpt-5.4
/model status
诊断与排错
openclaw doctor
openclaw doctor --fix
OpenClaw agent 日程安排 日历 + 邮件 + 联系人工具
你是一个专业的日程安排助手,负责帮助用户安排、调整、确认和跟进会议、提醒与日历事件。你的首要目标是准确、高效、少打扰地完成排程任务。
【核心职责】
- 读取并理解用户的排程需求。
- 使用可用工具查询日历、联系人、邮件或会议信息。
- 在存在约束条件时,主动权衡并提出最合适的时间方案。
- 起草清晰、简洁、礼貌的沟通内容,用于邀请、改期、确认或取消会议。
- 避免重复确认已经明确的信息,减少无意义往返。
- 在信息不足时,优先根据上下文和已有规则做合理推断;仅在确实无法继续时,才提出一个最小化的问题。
【总体行为原则】
- 准确优先于速度。
- 默认保持简洁、直接、专业。
- 对时间、日期、时区、参会人、会议形式必须高度谨慎。
- 不要假设不存在的空闲时间,不要编造会议、联系人或邮件内容。
- 每次执行前先确认目标,再确认约束,再决定是否需要工具调用。
- 一旦已有足够信息,就直接推进,不要反复征求确认。
- 若用户表达了明确偏好,以用户偏好为最高优先级。
- 若发现冲突或不确定性,要明确指出,不要含糊带过。
【时间与时区规则】
- 所有内部推理都必须显式考虑时区。
- 若用户未指定时区,优先使用用户的默认时区。
- 若涉及多个参与者,输出候选时间时必须同时说明对应时区,或统一换算到一个明确时区。
- 输出时间时尽量使用绝对时间格式,避免只说“明天下午”“下周二上午”这类容易歧义的表达。
- 推荐格式示例:
- 2026-04-09 Thu 14:00–14:30 PT
- 2026-04-10 Fri 09:00–09:25 ET
- 若用户使用“今天 / 明天 / 下周一”等相对表达,转换时要以当前日期和用户时区为准。
- 除非用户明确要求,否则不要安排在以下时间:
- 工作时间之外
- 午休时段
- 已有事件的前后无缓冲区的缝隙
- 默认给会议前后预留缓冲时间:
- 短会:前后各 5 分钟
- 30 分钟以上会议:前后各 10 分钟 若用户已有明确规则,以用户规则为准。
【默认排程策略】 在用户没有给出详细规则时,使用以下默认策略:
- 优先安排在工作日工作时间内。
- 优先选择最近可行时间,但不要牺牲会议质量。
- 默认会议时长:
- 快速同步:25 分钟
- 常规会议:30 分钟
- 深度讨论:50 分钟
- 若需给出候选时间,默认提供 3 个选项,按优先级排序。
- 候选时间应满足:
- 不与现有事件冲突
- 有合理缓冲
- 尽量减少跨时区不便
- 尽量避免连续高强度会议之后立即插入新会
- 若已有明确最佳时间,不必机械地给 3 个选项,可直接推荐 1 个并附带备选。
【冲突处理规则】
- 如果发现日历冲突,不要强行安排。
- 若冲突事件可移动,说明这是一个可移动冲突,而不是直接覆盖。
- 若用户要求“尽快安排”,可以提出以下优先级:
- 同日可行空档
- 次日工作时间内空档
- 本周内最佳折中时间
- 若多个参与者都繁忙,应优先寻找:
- 共同可用时间
- 对关键参会人影响最小的时间
- 比较短的替代时长
- 若根本没有共同空档,给出明确结论,并提供下一步建议,例如:
- 缩短会议时长
- 改为异步更新
- 拆分为两场
- 先约关键决策人
【沟通规则】
- 起草邮件或消息时,保持礼貌、专业、简洁。
- 不要写得过度热情或冗长。
- 若是首次邀约,应包含:
- 会议目的
- 候选时间或已选时间
- 时区
- 时长
- 会议形式(线上/线下/电话)
- 若是改期,应明确:
- 原计划需要调整
- 新候选时间
- 是否需要对方确认
- 若是确认邮件,应明确最终时间、时区、形式和任何准备事项。
- 若用户没有要求,不要擅自添加寒暄、客套段落或多余背景。
【确认与提问策略】 只有在以下情况才提问,而且一次只问最关键的一个问题:
- 缺少执行所必需的信息,例如:
- 不知道要和谁约
- 不知道大致时间范围
- 不知道会议时长
- 存在高风险歧义,例如:
- 两位联系人重名
- 时区无法确定且会影响结果
- 用户说“下周三”但上下文跨地区且日期可能理解不同
- 工具结果互相冲突,无法判断真实状态
若信息虽不完美但足以推进,则直接推进,并清楚说明你采用的假设。
【工具调用原则】
- 查询类任务先查,再说。
- 写入类任务(创建、改期、取消、发邮件)在具备充分条件时直接执行。
- 不要在没有必要时重复调用同一个工具。
- 调用工具后,要基于返回结果更新结论,不能沿用旧假设。
- 若工具失败,清楚说明失败点,并给出可继续推进的替代方案。
【结果输出格式】 根据任务类型输出:
A. 若是内部决策或推荐时间:
- 先给结论
- 再给 1 到 3 个候选时间
- 再简述原因
示例: 最佳时间是:
- 2026-04-09 Thu 14:00–14:30 PT 备选:
- 2026-04-10 Fri 10:00–10:30 PT
- 2026-04-10 Fri 15:30–16:00 PT
原因:
- 不与现有会议冲突
- 均保留了缓冲时间
- 对主要参会人都在工作时间内
B. 若是生成外发消息: 只输出可以直接发送的正文,不加解释,不加引号。
C. 若是需要说明限制: 先说限制,再给下一步建议。
【禁止事项】
- 不要编造空闲时间、联系人、邮件、会议地点或参会意愿。
- 不要忽略时区。
- 不要把 tentative / maybe 当作 confirmed。
- 不要在已有明确信息时反复确认。
- 不要输出模糊到无法执行的建议。
- 不要在用户未要求时泄露内部推理或工具细节。
- 不要在同一回复里给过多选项,避免决策疲劳。
【质量标准】 你的输出应满足:
- 时间准确
- 时区明确
- 约束完整
- 建议可执行
- 沟通文案可直接发送
- 尽量减少来回轮次
如果你能直接完成排程,就直接完成。 如果你不能直接完成,就提出最小必要问题或给出最可执行的下一步。
OpenClaw几个选项解释
- off — 完全不推理,直接回答
- Minimal — 几乎不思考,最快
- Low — 轻度推理(当前默认)
- Medium — 中度思考,较全面
- High — 深度思考,最慢但最周全
- Adaptive — 模型自己决定什么时候深入
- Default (low) — 默认选 Low
openclaw 中国天气网实时天气自定义技能skills,无需API密钥,速度快、准确、稳定
输出:
- 今天、明天、后天详细天气
- 天气概况和温度
- 空气质量
- 白天/夜间风向风力
- 日出/日落时间
- 农历
- 生活指数
- 生活指数图标文件名
- 24小时温度,横向每 8 个时间一组
- 15天预报 Markdown 简表
显示如下:
═════════════════════════════════════════════════
北京天气
城市代码:101010100
页面:https://e.weather.com.cn/mweather15d/101010100.shtml
═════════════════════════════════════════════════
预报更新时间:每日06、08、12、16、20时
今天天气(04/24)
⛅ 多云 | 温度:25/15℃
空气:良
️ 风向:白天 南风<3级 / 夜间 西南风<3级
日出日落:05:26 / 19:00
️ 农历:三月初八
生活指数
感冒:少发 [少发.png]
穿衣:衬衫 [衬衫.png]
化妆:去油 [去油.png]
24小时温度
11:00 12:00 13:00 14:00 15:00 16:00 17:00 18:00
23℃ 24℃ 24℃ 25℃ 25℃ 25℃ 25℃ 24℃
19:00 20:00 21:00 22:00 23:00 00:00 01:00 02:00
23℃ 22℃ 21℃ 20℃ 19℃ 18℃ 17℃ 17℃
03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00
16℃ 16℃ 15℃ 16℃ 17℃ 18℃ 20℃ 22℃
─────────────────────────────────────────────────
周六天气(04/25)
⛅ 多云 | 温度:26/15℃
️ 风向:白天 西南风3-4级 / 夜间 西南风3-4级
日出日落:05:24 / 19:01
️ 农历:三月初九
生活指数
感冒:少发 [少发.png]
穿衣:衬衫 [衬衫.png]
化妆:去油 [去油.png]
24小时温度
00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00
18℃ 17℃ 17℃ 16℃ 16℃ 15℃ 16℃ 17℃
08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00
18℃ 20℃ 22℃ 23℃ 24℃ 25℃ 26℃ 26℃
16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00
25℃ 25℃ 25℃ 24℃ 23℃ 22℃ 21℃ 20℃
─────────────────────────────────────────────────
周日天气(04/26)
️ 多云转晴 | 温度:23/12℃
️ 风向:白天 南风<3级 / 夜间 北风<3级
日出日落:05:23 / 19:02
️ 农历:三月初十
生活指数
感冒:少发 [少发.png]
穿衣:衬衫 [衬衫.png]
化妆:保湿 [保湿.png]
24小时温度
00:00 01:00 02:00 03:00 04:00 05:00 06:00 07:00
20℃ 19℃ 18℃ 17℃ 16℃ 15℃ 15℃ 16℃
08:00 09:00 10:00 11:00 12:00 13:00 14:00 15:00
16℃ 19℃ 20℃ 22℃ 23℃ 23℃ 23℃ 23℃
16:00 17:00 18:00 19:00 20:00 21:00 22:00 23:00
23℃ 23℃ 21℃ 20℃ 18℃ 17℃ 16℃ 15℃
═════════════════════════════════════════════════
15天预报简表
| 日期 | 星期 | 天气 | 温度 | 空气 | 白天风向 | 夜间风向 | 日出/日落 | 农历 |
|---|---|---|---|---|---|---|---|---|
| 04/24 | 今天 | 多云 | 25/15℃ | 良 | 南风小于3级 | 西南风小于3级 | 05:26 / 19:00 | 三月初八 |
| 04/25 | 周六 | 多云 | 26/15℃ | - | 西南风3-4级 | 西南风3-4级 | 05:24 / 19:01 | 三月初九 |
| 04/26 | 周日 | 多云转晴 | 23/12℃ | - | 南风小于3级 | 北风小于3级 | 05:23 / 19:02 | 三月初十 |
| 04/27 | 周一 | 晴 | 26/13℃ | - | 北风小于3级 | 东风小于3级 | 05:22 / 19:03 | 三月十一 |
| 04/28 | 周二 | 晴 | 24/11℃ | - | 南风小于3级 | 东北风小于3级 | 05:20 / 19:04 | 三月十二 |
| 04/29 | 周三 | 晴转多云 | 25/12℃ | - | 西南风小于3级 | 东南风小于3级 | 05:19 / 19:05 | 三月十三 |
| 04/30 | 周四 | 多云 | 26/13℃ | - | 南风小于3级 | 南风小于3级 | 05:18 / 19:06 | 三月十四 |
| 05/01 | 周五 | 多云 | 26/15℃ | - | 西风小于3级 | 东南风小于3级 | 05:16 / 19:07 | 三月十五 |
| 05/02 | 周六 | 阴 | 26/15℃ | - | 西南风小于3级 | 西南风小于3级 | 05:15 / 19:08 | 三月十六 |
| 05/03 | 周日 | 多云 | 28/17℃ | - | 西南风小于3级 | 西南风小于3级 | 05:14 / 19:09 | 三月十七 |
| 05/04 | 周一 | 阴转雨 | 28/16℃ | - | 南风3-4级 | 南风3-4级 | 05:13 / 19:10 | 三月十八 |
| 05/05 | 周二 | 雨转晴 | 20/11℃ | - | 北风小于3级 | 南风小于3级 | 05:12 / 19:11 | 三月十九 立夏 |
| 05/06 | 周三 | 多云转晴 | 26/12℃ | - | 东南风3-4级 | 东风小于3级 | 05:10 / 19:12 | 三月二十 |
| 05/07 | 周四 | 晴转多云 | 27/16℃ | - | 南风3-4级 | 东南风小于3级 | 05:09 / 19:13 | 三月廿一 |
| 05/08 | 周五 | 多云转阴 | 34/13℃ | - | 东南风3-4级 | 东南风小于3级 | 05:08 / 19:14 | 三月廿二 |
技能附件: weather_cn_skill.rar (86.1 KB)
OpenClaw不依赖skill技能定时检测这些站点是否有新文章,并展示部分内容
信息订阅,而不是网页自动化
- skill 体系不完整(有占位但没安装)
- OpenClaw CLI 行为不一致(版本问题)
- 用外部简单工具反而更稳定
- 主要是免token
最优建议不依赖 OpenClaw skill 完整 Python 脚本 + 去重 + 输出摘要 + 自动运行
环境
Ubuntu系统
├── Python3(系统自带)✔
├── OpenClaw(独立工具)✔
└── pip受限制(PEP 668)✔
脚本
cat > /data/rss_check.py << 'EOF'
import feedparser
import json
import os
import re
FEEDS = [
"https://zhujiwiki.com/feed",
"https://affyun.com/feed",
"https://iui.su/feed",
"https://lala.im/feed",
"https://www.appinn.com/feed",
"https://www.dayanzai.me/feed",
"https://www.iplaysoft.com/feed"
]
STATE_FILE = "/root/rss_seen.json"
# 读取历史
if os.path.exists(STATE_FILE):
with open(STATE_FILE, "r") as f:
seen = set(json.load(f))
first_run = False
else:
seen = set()
first_run = True
new_seen = set(seen)
new_items = []
for url in FEEDS:
d = feedparser.parse(url)
for entry in d.entries[:5]:
if entry.link not in seen:
new_seen.add(entry.link)
if not first_run:
summary = re.sub('<.*?>', '', entry.get("summary", ""))[:100]
new_items.append(
f"[{url}]
标题: {entry.title}
链接: {entry.link}
摘要: {summary}
"
)
if new_items:
print("
".join(new_items))
with open(STATE_FILE, "w") as f:
json.dump(list(new_seen), f)
EOF
执行脚本
python3 /data/rss_check.py
openclaw 定时备份脚本优化
前几天备份openclaw,压缩文件2G,越来越大,发现这plugin-runtime-deps最大,主要是需要额外依赖的插件,重新安装拉取就行
体积优化
- 排除:
plugin-runtime-depslogs.cache
可观测性
- 记录备份大小:
cat > /root/scripts/backup-openclaw.sh << 'EOF'
#!/bin/bash
# OpenClaw 自动备份脚本(优化版)
# 排除大体积可重建目录(plugin-runtime-deps / logs / cache)
# 保留关键数据(credentials / memory / workspace 等)
BACKUP_DIR="/CloudDrive/CloudDrive"
SOURCE_DIR="/root"
LOG_FILE="/root/scripts/backup.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
backup_name="openclaw-backup-$(date +%F-%H%M%S).tar.gz"
mkdir -p "$BACKUP_DIR"
tar -C "$SOURCE_DIR"
--exclude='.openclaw/plugin-runtime-deps'
--exclude='.openclaw/logs/*'
--exclude='.openclaw/.cache/*'
-czpf "$BACKUP_DIR/$backup_name"
.openclaw 2>>"$LOG_FILE"
if [ $? -eq 0 ]; then
SIZE=$(du -sh "$BACKUP_DIR/$backup_name" | awk '{print $1}')
echo "[$DATE] Backup SUCCESS: $backup_name (size: $SIZE)" >> "$LOG_FILE"
cd "$BACKUP_DIR" || exit 1
ls -t openclaw-backup-*.tar.gz 2>/dev/null | sed -n '11,$p' | xargs -r rm -f
else
echo "[$DATE] Backup FAILED" >> "$LOG_FILE"
fi
EOF
chmod +x /root/scripts/backup-openclaw.sh