自动同步: 2026-03-12 03:00

This commit is contained in:
2026-03-12 03:00:29 +08:00
parent a078c575b9
commit deff5877b4
70 changed files with 8684 additions and 367 deletions
+17 -8
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# 每日回顾整理脚本
# 功能:将TODO.md中已完成的任务移动到昨天的每日回顾中
# 流程:NAS pull → 整理任务 → Git commit/push → NAS sync
set -e
@@ -27,13 +27,20 @@ log "处理日期: $YESTERDAY"
# 切换到工作目录
cd "$WORK_DIR"
# 1. 先从 NAS 拉取最新内容
log "1. 从 NAS 拉取更新..."
rclone sync "nas-webdav:/home/Drive/工作区/张青/工作区/" "$WORK_DIR/" \
--exclude ".git/" \
--exclude ".gitignore" \
--log-level INFO >> "$LOG_FILE" 2>&1
# 如果没有已完成的任务,直接退出
if ! grep -q "\[x\]" "$TODO_FILE"; then
log "没有已完成的任务,跳过"
exit 0
fi
log "发现已完成的任务"
log "2. 发现已完成的任务,开始整理..."
# 提取已完成的任务(保留标题结构)
# 读取TODO.md,提取所有包含[x]的行及其所属标题
@@ -83,15 +90,17 @@ awk '
}
' "$TODO_FILE" > "$TODO_FILE.tmp" && mv "$TODO_FILE.tmp" "$TODO_FILE"
# 提交git变更
# 3. 提交并推送到 Gitea
log "3. 提交并推送到 Gitea..."
git add "$TODO_FILE" "$REVIEW_FILE"
git commit -m "每日回顾整理:$YESTERDAY" >> "$LOG_FILE" 2>&1 || log "Git提交无变更"
git push origin main >> "$LOG_FILE" 2>&1 || log "警告:Git推送失败"
# 同步到 NAS
log "推送到 NAS..."
rclone copy "$REVIEW_FILE" "nas-webdav:/home/Drive/工作区/张青/工作区/40.归档/每日回顾/" \
--log-level INFO >> "$LOG_FILE" 2>&1 || log "警告:rclone 推送失败"
rclone copy "$TODO_FILE" "nas-webdav:/home/Drive/工作区/张青/工作区/01.待办/" \
# 4. 全量同步回 NAS
log "4. 同步回 NAS..."
rclone sync "$WORK_DIR/" "nas-webdav:/home/Drive/工作区/张青/工作区/" \
--exclude ".git/" \
--exclude ".gitignore" \
--log-level INFO >> "$LOG_FILE" 2>&1 || log "警告:rclone 推送失败"
log "=== 每日回顾整理完成 ==="
+10 -23
View File
@@ -13,33 +13,20 @@ echo "" >> "$OUTPUT_FILE"
# 切换到 openclaw 目录
cd "$OPENCLAW_DIR"
# 推送到远端(如果有远端)
if git remote get-url origin &>/dev/null; then
echo "=== 推送到远端 ===" >> "$OUTPUT_FILE"
git push origin main >> "$OUTPUT_FILE" 2>&1
echo "推送完成" >> "$OUTPUT_FILE"
else
echo "无远端配置,跳过推送" >> "$OUTPUT_FILE"
fi
echo "" >> "$OUTPUT_FILE"
# 检查是否有未提交的更改
# 检查是否有未提交的更改,先提交到 main
if [[ -n $(git status --porcelain) ]]; then
echo "发现有未提交的更改,先提交..." >> "$OUTPUT_FILE"
echo "发现有未提交的更改,先提交到 main..." >> "$OUTPUT_FILE"
git add -A
git commit -m "Auto backup before evolver run - $(date)" 2>/dev/null
fi
# 创建备份分支
BACKUP_BRANCH="backup/evolver-$(date +%Y%m%d-%H%M%S)"
echo "创建备份分支: $BACKUP_BRANCH" >> "$OUTPUT_FILE"
git branch -D "$BACKUP_BRANCH" 2>/dev/null || true
git branch "$BACKUP_BRANCH" 2>/dev/null
# 推送备份分支
# 推送当前状态到 main(作为备份点)
if git remote get-url origin &>/dev/null; then
git push origin "$BACKUP_BRANCH" >> "$OUTPUT_FILE" 2>&1 || echo "备份分支推送失败" >> "$OUTPUT_FILE"
echo "=== 推送当前状态到 main 分支 ===" >> "$OUTPUT_FILE"
git push origin main >> "$OUTPUT_FILE" 2>&1
echo "备份完成" >> "$OUTPUT_FILE"
else
echo "无远端配置,跳过推送" >> "$OUTPUT_FILE"
fi
echo "" >> "$OUTPUT_FILE"
@@ -62,10 +49,10 @@ echo "" >> "$OUTPUT_FILE"
echo "=== 本次变更 ===" >> "$OUTPUT_FILE"
git status --short >> "$OUTPUT_FILE"
# 如果有变更,推送
# 如果有变更,推送到 main
if [[ -n $(git status --porcelain) ]]; then
echo "" >> "$OUTPUT_FILE"
echo "=== 推送变更到远端 ===" >> "$OUTPUT_FILE"
echo "=== 推送变更到 main 分支 ===" >> "$OUTPUT_FILE"
git add -A
git commit -m "Evolver auto evolution - $(date)" 2>/dev/null || true
git push origin main >> "$OUTPUT_FILE" 2>&1 || echo "推送失败" >> "$OUTPUT_FILE"
@@ -1,5 +1,6 @@
#!/bin/bash
# 知识库同步和备份脚本
# zq 工作区同步脚本
# 流程:NAS pull → Git commit/push(Gitea备份)→ NAS push
ZQ_DIR="$HOME/work/zq"
LOG_FILE="$HOME/work/zq-sync.log"
@@ -13,31 +14,30 @@ log "========== 开始同步 =========="
cd "$ZQ_DIR" || exit 1
# 1. 先拉取远程更新
log "拉取远程更新..."
git pull origin main --rebase >> "$LOG_FILE" 2>&1
# 2. 从 NAS WebDAV 拉取最新内容(排除 .git 目录)
log "从 NAS 拉取更新..."
# 1. 从 NAS WebDAV 拉取最新内容
log "1. 从 NAS 拉取更新..."
rclone sync "nas-webdav:/home/Drive/工作区/张青/工作区/" "$ZQ_DIR/" \
--exclude ".git/" \
--exclude ".gitignore" \
--log-level INFO >> "$LOG_FILE" 2>&1
# 3. 检查是否有变更
# 2. 检查是否有变更,有则提交到 Git(推送到 Gitea 备份)
CHANGES=$(git status --porcelain)
if [ -n "$CHANGES" ]; then
log "检测到变更,提交到 Git..."
log "2. 检测到变更,提交到 Gitea..."
git add -A
git commit -m "自动备份: $DATE" >> "$LOG_FILE" 2>&1
# 4. 推送到 Gitea
log "推送到 Gitea..."
git push origin main >> "$LOG_FILE" 2>&1
log "备份完成!"
else
log "没有变更,跳过提交。"
log "2. 没有变更,跳过 Git 提交。"
fi
# 3. 同步回 NAS
log "3. 同步回 NAS..."
rclone sync "$ZQ_DIR/" "nas-webdav:/home/Drive/工作区/张青/工作区/" \
--exclude ".git/" \
--exclude ".gitignore" \
--log-level INFO >> "$LOG_FILE" 2>&1
log "========== 同步完成 =========="