lin7zhi commited on
Commit
1109401
·
verified ·
1 Parent(s): 6ef16db

Delete sync.sh

Browse files
Files changed (1) hide show
  1. sync.sh +0 -80
sync.sh DELETED
@@ -1,80 +0,0 @@
1
- #!/bin/bash
2
-
3
- # === 配置 ===
4
- # WebDAV设置 (会自动读取环境变量)
5
- WEBDAV_URL=${WEBDAV_URL%/}
6
- FULL_WEBDAV_URL="${WEBDAV_URL}"
7
- TEMP_DIR="/tmp/backup_temp"
8
- # 指定要备份的文件名
9
- TARGET_FILE="accounts.json"
10
- # 指定工作目录 (Docker内项目通常在 /app 或 /home/node/app)
11
- WORK_DIR=$(pwd)
12
-
13
- # 日志函数
14
- log() { echo "[Backup] [$(date '+%H:%M:%S')] $1"; }
15
-
16
- # === 检查环境变量 ===
17
- if [[ -z "$WEBDAV_URL" ]]; then
18
- log "未设置 WEBDAV_URL,跳过备份功能"
19
- exit 0
20
- fi
21
-
22
- # === 准备环境 ===
23
- mkdir -p $TEMP_DIR
24
- # 安装依赖 (如果镜像里没有)
25
- if ! command -v curl &> /dev/null; then
26
- log "安装 curl..."
27
- apt-get update && apt-get install -y curl || apk add --no-cache curl
28
- fi
29
-
30
- # === 1. 恢复备份 (启动时运行一次) ===
31
- download_backup() {
32
- log "正在检查远程备份..."
33
- # 获取最新的备份文件名 (简单粗暴的方法:假设你只存最新的或者手动管理,这里简化为尝试下载固定名字或最新时间戳)
34
- # 为了简化逻辑,我们这里尝试下载 'latest_accounts.json' 或者列出文件
35
- # 这里使用 curl 列出文件比较麻烦,我们简化逻辑:只下载/上传名为 accounts_backup.json 的文件
36
- # 这样永远保持一份最新备份,避免空间满
37
-
38
- REMOTE_FILE="$FULL_WEBDAV_URL/antigravity_accounts.json"
39
-
40
- log "尝试下载: $REMOTE_FILE"
41
- HTTP_CODE=$(curl -s -o "$TEMP_DIR/restored.json" -w "%{http_code}" -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$REMOTE_FILE")
42
-
43
- if [[ "$HTTP_CODE" == "200" ]]; then
44
- log "发现远程备份,正在恢复..."
45
- mv "$TEMP_DIR/restored.json" "$WORK_DIR/$TARGET_FILE"
46
- log "成功恢复 $TARGET_FILE"
47
- else
48
- log "未找到远程备份 (HTTP $HTTP_CODE),跳过恢复"
49
- fi
50
- }
51
-
52
- # === 2. 循环备份 ===
53
- loop_sync() {
54
- while true; do
55
- # 每 10 分钟检查一次 (600秒),Token 变动不频繁,不需要太快
56
- sleep 60
57
-
58
- if [ -f "$WORK_DIR/$TARGET_FILE" ]; then
59
- # 计算文件MD5,如果没有变化就不上传 (节省流量)
60
- # 这里简化:直接上传覆盖,文件很小
61
-
62
- log "正在上传备份..."
63
- REMOTE_FILE="$FULL_WEBDAV_URL/antigravity_accounts.json"
64
-
65
- HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -T "$WORK_DIR/$TARGET_FILE" "$REMOTE_FILE")
66
-
67
- if [[ "$HTTP_CODE" == "201" ]] || [[ "$HTTP_CODE" == "204" ]] || [[ "$HTTP_CODE" == "200" ]]; then
68
- log "备份成功"
69
- else
70
- log "备份失败 (HTTP $HTTP_CODE)"
71
- fi
72
- else
73
- log "当前没有 $TARGET_FILE,跳过备份"
74
- fi
75
- done
76
- }
77
-
78
- # === 主流程 ===
79
- download_backup
80
- loop_sync