openclaw 定时备份脚本优化

前几天备份openclaw,压缩文件2G,越来越大,发现这plugin-runtime-deps最大,主要是需要额外依赖的插件,重新安装拉取就行

体积优化

  • 排除:
    • plugin-runtime-deps
    • logs
    • .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