Auto backup: 2026-02-19 12:13
This commit is contained in:
@@ -33,19 +33,54 @@ send_gotify() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Snapshot critical OpenClaw state into workspace repo so updates/reinstalls are recoverable
|
||||
snapshot_state_files() {
|
||||
local src_root="/home/openclaw/.openclaw"
|
||||
local dst_root="/home/openclaw/.openclaw/workspace/state-backup"
|
||||
|
||||
mkdir -p "$dst_root" "$dst_root/cron" "$dst_root/skills" "$dst_root/devices"
|
||||
|
||||
# Copy key state files if present
|
||||
[[ -f "$src_root/openclaw.json" ]] && cp "$src_root/openclaw.json" "$dst_root/openclaw.json"
|
||||
[[ -f "$src_root/cron/jobs.json" ]] && cp "$src_root/cron/jobs.json" "$dst_root/cron/jobs.json"
|
||||
[[ -f "$src_root/devices/paired.json" ]] && cp "$src_root/devices/paired.json" "$dst_root/devices/paired.json"
|
||||
|
||||
# Skill metadata (if any)
|
||||
if compgen -G "$src_root/skills/*.json" > /dev/null; then
|
||||
cp "$src_root/skills"/*.json "$dst_root/skills/"
|
||||
fi
|
||||
|
||||
# Helpful restore/readme metadata
|
||||
cat > "$dst_root/README.md" <<EOF
|
||||
# OpenClaw State Backup
|
||||
|
||||
This folder is auto-generated by automations/backup-to-gitea.sh before each git backup.
|
||||
|
||||
Included state:
|
||||
- openclaw.json
|
||||
- cron/jobs.json
|
||||
- devices/paired.json
|
||||
- skills/*.json
|
||||
|
||||
Generated at: $(date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||
EOF
|
||||
|
||||
echo "🧠 State snapshot refreshed in state-backup/" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
# Function to backup a repo
|
||||
backup_repo() {
|
||||
local path=$1
|
||||
local name=$2
|
||||
|
||||
|
||||
cd "$path"
|
||||
|
||||
|
||||
# Check if there are changes
|
||||
if [[ -n $(git status --porcelain) ]]; then
|
||||
echo "📦 $name: Changes detected, committing..." | tee -a "$LOG_FILE"
|
||||
git add -A
|
||||
git commit -m "Auto backup: $TIMESTAMP" || echo "⚠️ Commit failed or nothing to commit"
|
||||
|
||||
|
||||
echo "☁️ $name: Pushing to GitTea..." | tee -a "$LOG_FILE"
|
||||
if git push origin main 2>&1 | tee -a "$LOG_FILE"; then
|
||||
echo "✅ $name: Backup successful" | tee -a "$LOG_FILE"
|
||||
@@ -60,6 +95,7 @@ backup_repo() {
|
||||
|
||||
# Backup workspace
|
||||
echo "📂 Backing up workspace..." | tee -a "$LOG_FILE"
|
||||
snapshot_state_files
|
||||
backup_repo "/home/openclaw/.openclaw/workspace" "workspace"
|
||||
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
|
||||
Reference in New Issue
Block a user