wuran commited on
Commit
de6a119
·
verified ·
1 Parent(s): 1522564

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +60 -107
sync_data.sh CHANGED
@@ -149,131 +149,84 @@ fi
149
 
150
  # 定义同步函数(只使用WebDAV)
151
  sync_data() {
152
- # 初始化时间戳文件
153
- CONFIG_LAST_CHECK_FILE="$WORK_DIR/config_last_check"
154
- TOOLS_LAST_CHECK_FILE="$WORK_DIR/tools_last_check"
155
- touch "$CONFIG_LAST_CHECK_FILE" "$TOOLS_LAST_CHECK_FILE"
156
 
157
  while true; do
158
- echo "正在开始同步检查"
159
 
160
- # 检查config和tools目录变化
161
- CONFIG_CHANGED=0
162
- TOOLS_CHANGED=0
163
 
164
- # 检查config目录变化
165
- if [ -d "/mcp-proxy-server/config" ] && [ "$(ls -A /mcp-proxy-server/config 2>/dev/null)" ]; then
166
- # 获取config目录的最新修改时间
167
- CURRENT_CONFIG_TIME=$(find /mcp-proxy-server/config -type f -exec stat -c %Y {} \; 2>/dev/null | sort -n | tail -1)
168
- [ -z "$CURRENT_CONFIG_TIME" ] && CURRENT_CONFIG_TIME=0
169
-
170
- # 获取上次记录的时间
171
- LAST_CONFIG_TIME=$(cat "$CONFIG_LAST_CHECK_FILE" 2>/dev/null || echo 0)
172
-
173
- if [ "$CURRENT_CONFIG_TIME" -gt "$LAST_CONFIG_TIME" ]; then
174
- CONFIG_CHANGED=1
175
- echo "检测到 config 目录变化"
176
- fi
177
- fi
178
 
179
- # 检查tools目录变化
180
- if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
181
- # 获取tools目录的最新修改时间
182
- CURRENT_TOOLS_TIME=$(find /tools -type f -exec stat -c %Y {} \; 2>/dev/null | sort -n | tail -1)
183
- [ -z "$CURRENT_TOOLS_TIME" ] && CURRENT_TOOLS_TIME=0
184
-
185
- # 获取上次记录的时间
186
- LAST_TOOLS_TIME=$(cat "$TOOLS_LAST_CHECK_FILE" 2>/dev/null || echo 0)
187
-
188
- if [ "$CURRENT_TOOLS_TIME" -gt "$LAST_TOOLS_TIME" ]; then
189
- TOOLS_CHANGED=1
190
- echo "检测到 tools 目录变化"
191
- fi
192
- fi
193
 
194
- # 如果有变化,执行WebDAV备份
195
- if [ "$CONFIG_CHANGED" = "1" ] || [ "$TOOLS_CHANGED" = "1" ]; then
196
- echo "检测到文件变化,开始WebDAV备份..."
197
-
198
- # 使用时间戳创建备份文件名
199
- FILENAME="mcp_backup_$(date +'%Y%m%d_%H%M').tar.gz"
200
-
201
- # 创建临时备份压缩包
202
- TEMP_DIR="$WORK_DIR/temp_backup"
203
- rm -rf "$TEMP_DIR"
204
- mkdir -p "$TEMP_DIR"
205
-
206
- # 复制要备份的目录到临时目录
207
- BACKUP_CREATED=0
208
-
209
- # 备份config目录(排除工作目录)
210
- if [ -d "/mcp-proxy-server/config" ] && [ "$(ls -A /mcp-proxy-server/config 2>/dev/null)" ]; then
211
- mkdir -p "$TEMP_DIR/config"
212
- for item in /mcp-proxy-server/config/*; do
213
- if [ -e "$item" ]; then
214
- BASENAME=$(basename "$item")
215
- case "$BASENAME" in
216
- github_data|temp_backup|webdav_restore)
217
- ;;
218
- *)
219
- if [ -d "$item" ]; then
220
- cp -r "$item" "$TEMP_DIR/config/" 2>/dev/null && BACKUP_CREATED=1
221
- else
222
- cp "$item" "$TEMP_DIR/config/" 2>/dev/null && BACKUP_CREATED=1
223
- fi
224
- ;;
225
- esac
226
- fi
227
- done
228
- fi
229
-
230
- # 备份tools目录
231
- if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
232
- mkdir -p "$TEMP_DIR/tools"
233
- for item in /tools/*; do
234
- if [ -e "$item" ]; then
235
- BASENAME=$(basename "$item")
236
- if [ -d "$item" ]; then
237
- mkdir -p "$TEMP_DIR/tools/$BASENAME"
238
- if [ "$(ls -A "$item" 2>/dev/null)" ]; then
239
- cp -r "$item"/* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null && BACKUP_CREATED=1
240
- cp -r "$item"/.[!.]* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null || true
241
  else
242
- touch "$TEMP_DIR/tools/$BASENAME/.gitkeep"
243
- BACKUP_CREATED=1
244
  fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  else
246
- cp "$item" "$TEMP_DIR/tools/" 2>/dev/null && BACKUP_CREATED=1
 
247
  fi
 
 
248
  fi
249
- done
250
- fi
251
-
252
- # 创建压缩包并上传
253
- if [ "$BACKUP_CREATED" = "1" ] && [ "$(ls -A $TEMP_DIR)" ]; then
254
- (cd "$TEMP_DIR" && tar -czf "../$FILENAME" .)
255
-
256
- if curl -T "$WORK_DIR/$FILENAME" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$WEBDAV_URL/$FILENAME" >/dev/null 2>&1; then
257
- echo "WebDAV备份上传成功: $FILENAME"
258
- # 更新记录文件
259
- [ "$CONFIG_CHANGED" = "1" ] && echo "$CURRENT_CONFIG_TIME" > "$CONFIG_LAST_CHECK_FILE"
260
- [ "$TOOLS_CHANGED" = "1" ] && echo "$CURRENT_TOOLS_TIME" > "$TOOLS_LAST_CHECK_FILE"
261
- else
262
- echo "WebDAV备份上传失败"
263
  fi
264
- rm -f "$WORK_DIR/$FILENAME"
 
 
 
 
 
 
 
 
265
  else
266
- echo "无文件可备份"
267
  fi
268
-
269
- rm -rf "$TEMP_DIR"
270
  else
271
- echo "无文件变化,跳过备份"
272
  fi
273
 
274
- # 等待下一次检查
 
 
275
  SYNC_INTERVAL=${SYNC_INTERVAL:-7200} # 默认间隔时间为 7200 秒
276
- echo "等待 ${SYNC_INTERVAL} 秒后进行下一次检查..."
277
  sleep $SYNC_INTERVAL
278
  done
279
  }
 
149
 
150
  # 定义同步函数(只使用WebDAV)
151
  sync_data() {
152
+ # 删除时间戳检查相关代码
 
 
 
153
 
154
  while true; do
155
+ echo "开始定期备份..."
156
 
157
+ # 使用时间戳创建备份文件名
158
+ FILENAME="mcp_backup_$(date +'%Y%m%d_%H%M').tar.gz"
 
159
 
160
+ # 创建临时备份压缩包
161
+ TEMP_DIR="$WORK_DIR/temp_backup"
162
+ rm -rf "$TEMP_DIR"
163
+ mkdir -p "$TEMP_DIR"
 
 
 
 
 
 
 
 
 
 
164
 
165
+ # 复制要备份的目录到临时目录
166
+ BACKUP_CREATED=0
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
+ # 备份config目录(排除工作目录)
169
+ if [ -d "/mcp-proxy-server/config" ] && [ "$(ls -A /mcp-proxy-server/config 2>/dev/null)" ]; then
170
+ mkdir -p "$TEMP_DIR/config"
171
+ for item in /mcp-proxy-server/config/*; do
172
+ if [ -e "$item" ]; then
173
+ BASENAME=$(basename "$item")
174
+ case "$BASENAME" in
175
+ github_data|temp_backup|webdav_restore)
176
+ ;;
177
+ *)
178
+ if [ -d "$item" ]; then
179
+ cp -r "$item" "$TEMP_DIR/config/" 2>/dev/null && BACKUP_CREATED=1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  else
181
+ cp "$item" "$TEMP_DIR/config/" 2>/dev/null && BACKUP_CREATED=1
 
182
  fi
183
+ ;;
184
+ esac
185
+ fi
186
+ done
187
+ fi
188
+
189
+ # 备份tools目录
190
+ if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
191
+ mkdir -p "$TEMP_DIR/tools"
192
+ for item in /tools/*; do
193
+ if [ -e "$item" ]; then
194
+ BASENAME=$(basename "$item")
195
+ if [ -d "$item" ]; then
196
+ mkdir -p "$TEMP_DIR/tools/$BASENAME"
197
+ if [ "$(ls -A "$item" 2>/dev/null)" ]; then
198
+ cp -r "$item"/* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null && BACKUP_CREATED=1
199
+ cp -r "$item"/.[!.]* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null || true
200
  else
201
+ touch "$TEMP_DIR/tools/$BASENAME/.gitkeep"
202
+ BACKUP_CREATED=1
203
  fi
204
+ else
205
+ cp "$item" "$TEMP_DIR/tools/" 2>/dev/null && BACKUP_CREATED=1
206
  fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  fi
208
+ done
209
+ fi
210
+
211
+ # 创建压缩包并上传
212
+ if [ "$BACKUP_CREATED" = "1" ] && [ "$(ls -A $TEMP_DIR)" ]; then
213
+ (cd "$TEMP_DIR" && tar -czf "../$FILENAME" .)
214
+
215
+ if curl -T "$WORK_DIR/$FILENAME" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$WEBDAV_URL/$FILENAME" >/dev/null 2>&1; then
216
+ echo "WebDAV备份上传成功: $FILENAME"
217
  else
218
+ echo "WebDAV备份上传失败"
219
  fi
220
+ rm -f "$WORK_DIR/$FILENAME"
 
221
  else
222
+ echo "无文件可备份"
223
  fi
224
 
225
+ rm -rf "$TEMP_DIR"
226
+
227
+ # 等待下一次备份
228
  SYNC_INTERVAL=${SYNC_INTERVAL:-7200} # 默认间隔时间为 7200 秒
229
+ echo "等待 ${SYNC_INTERVAL} 秒后进行下一次备份..."
230
  sleep $SYNC_INTERVAL
231
  done
232
  }