自动同步: 2026-03-12 03:00
This commit is contained in:
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
# zq 工作区同步脚本
|
||||
# 流程:NAS pull → Git commit/push(Gitea备份)→ NAS push
|
||||
|
||||
ZQ_DIR="$HOME/work/zq"
|
||||
LOG_FILE="$HOME/work/zq-sync.log"
|
||||
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
log() {
|
||||
echo "[$DATE] $1" >> "$LOG_FILE"
|
||||
}
|
||||
|
||||
log "========== 开始同步 =========="
|
||||
|
||||
cd "$ZQ_DIR" || exit 1
|
||||
|
||||
# 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
|
||||
|
||||
# 2. 检查是否有变更,有则提交到 Git(推送到 Gitea 备份)
|
||||
CHANGES=$(git status --porcelain)
|
||||
|
||||
if [ -n "$CHANGES" ]; then
|
||||
log "2. 检测到变更,提交到 Gitea..."
|
||||
git add -A
|
||||
git commit -m "自动备份: $DATE" >> "$LOG_FILE" 2>&1
|
||||
git push origin main >> "$LOG_FILE" 2>&1
|
||||
else
|
||||
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