自动同步: 2026-03-12 03:00
This commit is contained in:
@@ -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
@@ -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 "========== 同步完成 =========="
|
||||
Reference in New Issue
Block a user