Spaces:
Running
Running
Update sync_data.sh
Browse files- sync_data.sh +98 -84
sync_data.sh
CHANGED
@@ -142,10 +142,10 @@ if [ "$RESTORE_SOURCE" = "webdav" ]; then
|
|
142 |
# 仅从 WebDAV 恢复
|
143 |
restore_from_webdav
|
144 |
elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
|
145 |
-
# 从 GitHub
|
146 |
GITHUB_RESTORED=0
|
147 |
|
148 |
-
echo "从 GitHub
|
149 |
|
150 |
# 检查并恢复 config 目录
|
151 |
if [ -d "$GITHUB_DATA_DIR/config" ] && [ "$(ls -A $GITHUB_DATA_DIR/config 2>/dev/null)" ]; then
|
@@ -158,21 +158,25 @@ elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
|
|
158 |
echo "GitHub 仓库中没有 config 目录或目录为空"
|
159 |
fi
|
160 |
|
161 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
|
163 |
-
# 如果是 auto 模式,GitHub
|
164 |
-
if [ "$RESTORE_SOURCE" = "auto" ]; then
|
165 |
-
echo "
|
166 |
-
|
167 |
-
if [ -z "$WEBDAV_URL" ] || [ -z "$WEBDAV_USERNAME" ] || [ -z "$WEBDAV_PASSWORD" ]; then
|
168 |
-
echo "WebDAV 环境变量缺失,无法恢复 tools 目录"
|
169 |
-
else
|
170 |
-
restore_from_webdav || echo "WebDAV 恢复 tools 失败,将在同步时重新备份"
|
171 |
-
fi
|
172 |
elif [ "$GITHUB_RESTORED" = "1" ]; then
|
173 |
-
echo "从 GitHub
|
174 |
else
|
175 |
-
echo "GitHub
|
176 |
fi
|
177 |
fi
|
178 |
|
@@ -196,12 +200,13 @@ sync_data() {
|
|
196 |
git checkout main || git checkout master
|
197 |
|
198 |
# 复制最新的配置文件
|
199 |
-
echo "检查配置文件变化(GitHub
|
200 |
|
201 |
# 创建仓库中的目录
|
202 |
mkdir -p ./config
|
|
|
203 |
|
204 |
-
#
|
205 |
if [ -d "/mcp-proxy-server/config" ]; then
|
206 |
# 检查是否有非工作目录的文件
|
207 |
CONFIG_FILES=$(ls -A /mcp-proxy-server/config 2>/dev/null | grep -v -E '(github_data|temp_backup|webdav_restore)' || true)
|
@@ -227,7 +232,71 @@ sync_data() {
|
|
227 |
fi
|
228 |
fi
|
229 |
|
230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
|
232 |
# 检查是否有变化
|
233 |
CONFIG_CHANGED=0
|
@@ -235,7 +304,6 @@ sync_data() {
|
|
235 |
|
236 |
# 检查 config 目录变化(用于 GitHub 备份)
|
237 |
if [[ -n $(git status -s) ]]; then
|
238 |
-
echo "检测到 config 目录变化"
|
239 |
CONFIG_CHANGED=1
|
240 |
fi
|
241 |
|
@@ -248,11 +316,9 @@ sync_data() {
|
|
248 |
if [ -f "$TOOLS_LAST_CHECK_FILE" ]; then
|
249 |
LAST_TOOLS_TIME=$(cat "$TOOLS_LAST_CHECK_FILE" 2>/dev/null || echo "0")
|
250 |
if [ "$CURRENT_TOOLS_TIME" != "$LAST_TOOLS_TIME" ]; then
|
251 |
-
echo "检测到 tools 目录变化"
|
252 |
TOOLS_CHANGED=1
|
253 |
fi
|
254 |
else
|
255 |
-
echo "首次检查 tools 目录"
|
256 |
TOOLS_CHANGED=1
|
257 |
fi
|
258 |
|
@@ -263,64 +329,41 @@ sync_data() {
|
|
263 |
# 根据变化情况执行备份
|
264 |
if [ "$CONFIG_CHANGED" = "1" ] || [ "$TOOLS_CHANGED" = "1" ]; then
|
265 |
echo "检测到文件变化,开始备份..."
|
266 |
-
echo " - Config 变化: $([ "$CONFIG_CHANGED" = "1" ] && echo "是" || echo "否")"
|
267 |
-
echo " - Tools 变化: $([ "$TOOLS_CHANGED" = "1" ] && echo "是" || echo "否")"
|
268 |
|
269 |
# GitHub 备份(仅当 config 有变化时)
|
270 |
if [ "$CONFIG_CHANGED" = "1" ]; then
|
271 |
-
echo "
|
272 |
-
|
273 |
-
git
|
274 |
-
|
275 |
-
# 提交变更
|
276 |
-
git commit -m "Auto sync config $(date '+%Y-%m-%d %H:%M:%S')"
|
277 |
-
|
278 |
-
# 推送到远程仓库
|
279 |
-
git push origin HEAD && {
|
280 |
-
echo "GitHub推送成功"
|
281 |
-
}|| {
|
282 |
-
echo "推送失败,等待重试..."
|
283 |
-
sleep 10
|
284 |
-
git push origin HEAD || {
|
285 |
-
echo "重试失败,放弃推送到Github。"
|
286 |
-
}
|
287 |
-
}
|
288 |
-
else
|
289 |
-
echo "跳过 GitHub 备份(config 无变化)"
|
290 |
fi
|
291 |
|
292 |
# WebDAV 备份(当 config 或 tools 有变化时)
|
293 |
if [ -z "$WEBDAV_URL" ] || [ -z "$WEBDAV_USERNAME" ] || [ -z "$WEBDAV_PASSWORD" ]; then
|
294 |
-
echo "WebDAV 环境变量缺失,跳过
|
295 |
else
|
296 |
-
echo "
|
297 |
# 使用时间戳(年月日时分),每次同步都创建新备份
|
298 |
FILENAME="mcp_backup_$(date +'%Y%m%d_%H%M').tar.gz"
|
299 |
|
300 |
# 创建临时备份压缩包(使用独立目录)
|
301 |
TEMP_DIR="$WORK_DIR/temp_backup"
|
302 |
-
rm -rf "$TEMP_DIR"
|
303 |
mkdir -p "$TEMP_DIR"
|
304 |
|
305 |
# 复制要备份的目录到临时目录(WebDAV 备份包含 config 和 tools)
|
306 |
BACKUP_CREATED=0
|
307 |
|
308 |
if [ -d "/mcp-proxy-server/config" ]; then
|
309 |
-
echo "检查 config 目录用于备份..."
|
310 |
-
# 检查是否有非工作目录的文件
|
311 |
CONFIG_FILES=$(ls -A /mcp-proxy-server/config 2>/dev/null | grep -v -E '(github_data|temp_backup|webdav_restore)' || true)
|
312 |
|
313 |
if [ -n "$CONFIG_FILES" ]; then
|
314 |
-
echo "备份 config 目录..."
|
315 |
mkdir -p "$TEMP_DIR/config"
|
316 |
-
|
317 |
-
# 使用 cp 逐个复制,排除工作目录
|
318 |
for item in /mcp-proxy-server/config/*; do
|
319 |
if [ -e "$item" ]; then
|
320 |
BASENAME=$(basename "$item")
|
321 |
case "$BASENAME" in
|
322 |
github_data|temp_backup|webdav_restore)
|
323 |
-
echo "跳过工作目录: $BASENAME"
|
324 |
;;
|
325 |
*)
|
326 |
if [ -d "$item" ]; then
|
@@ -332,37 +375,24 @@ sync_data() {
|
|
332 |
esac
|
333 |
fi
|
334 |
done
|
335 |
-
else
|
336 |
-
echo "config 目录为空或只有工作目录,跳过备份"
|
337 |
fi
|
338 |
fi
|
339 |
|
340 |
if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
|
341 |
-
echo "备份 tools 目录..."
|
342 |
mkdir -p "$TEMP_DIR/tools"
|
343 |
-
|
344 |
-
# 逐个处理 tools 目录下的项目
|
345 |
for item in /tools/*; do
|
346 |
if [ -e "$item" ]; then
|
347 |
BASENAME=$(basename "$item")
|
348 |
-
echo "备份 tools 项目: $BASENAME"
|
349 |
-
|
350 |
if [ -d "$item" ]; then
|
351 |
-
# 创建目标目录
|
352 |
mkdir -p "$TEMP_DIR/tools/$BASENAME"
|
353 |
-
|
354 |
-
# 复制目录内容,包括隐藏文件
|
355 |
if [ "$(ls -A "$item" 2>/dev/null)" ]; then
|
356 |
cp -r "$item"/* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null && BACKUP_CREATED=1
|
357 |
-
# 也复制隐藏文件
|
358 |
cp -r "$item"/.[!.]* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null || true
|
359 |
else
|
360 |
-
# 空目录也创建 .gitkeep
|
361 |
touch "$TEMP_DIR/tools/$BASENAME/.gitkeep"
|
362 |
BACKUP_CREATED=1
|
363 |
fi
|
364 |
else
|
365 |
-
# 直接复制文件
|
366 |
cp "$item" "$TEMP_DIR/tools/" 2>/dev/null && BACKUP_CREATED=1
|
367 |
fi
|
368 |
fi
|
@@ -375,34 +405,19 @@ sync_data() {
|
|
375 |
tar -czf "../$FILENAME" .
|
376 |
cd - > /dev/null
|
377 |
|
378 |
-
|
379 |
-
# 使用 curl 进行文件上传
|
380 |
-
curl -T "$WORK_DIR/$FILENAME" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$WEBDAV_URL/$FILENAME" && {
|
381 |
-
echo "WebDAV 上传成功: $FILENAME"
|
382 |
-
} || {
|
383 |
-
echo "WebDAV 上传失败,等待重试..."
|
384 |
-
sleep 10
|
385 |
-
curl -T "$WORK_DIR/$FILENAME" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$WEBDAV_URL/$FILENAME" || {
|
386 |
-
echo "重试失败,放弃webdav上传。"
|
387 |
-
}
|
388 |
-
}
|
389 |
-
|
390 |
-
# 清理临时文件
|
391 |
rm -f "$WORK_DIR/$FILENAME"
|
392 |
else
|
393 |
-
echo "
|
394 |
fi
|
395 |
|
396 |
-
# 清理临时目录
|
397 |
rm -rf "$TEMP_DIR"
|
398 |
fi
|
399 |
|
400 |
-
echo "
|
401 |
|
402 |
else
|
403 |
-
echo "
|
404 |
-
echo " - Config 变化: 否"
|
405 |
-
echo " - Tools 变化: 否"
|
406 |
fi
|
407 |
|
408 |
# 返回上级目录
|
@@ -410,8 +425,7 @@ sync_data() {
|
|
410 |
|
411 |
# 3. 等待统一的时间间隔
|
412 |
SYNC_INTERVAL=${SYNC_INTERVAL:-7200} # 默认间隔时间为 7200 秒
|
413 |
-
echo "
|
414 |
-
echo "等待 ${SYNC_INTERVAL} 秒后进行下一次同步..."
|
415 |
sleep $SYNC_INTERVAL
|
416 |
|
417 |
done
|
|
|
142 |
# 仅从 WebDAV 恢复
|
143 |
restore_from_webdav
|
144 |
elif [ "$RESTORE_SOURCE" = "github" ] || [ "$RESTORE_SOURCE" = "auto" ]; then
|
145 |
+
# 从 GitHub 恢复(config 和 tools 目录)
|
146 |
GITHUB_RESTORED=0
|
147 |
|
148 |
+
echo "从 GitHub 恢复配置(config 和 tools 目录)..."
|
149 |
|
150 |
# 检查并恢复 config 目录
|
151 |
if [ -d "$GITHUB_DATA_DIR/config" ] && [ "$(ls -A $GITHUB_DATA_DIR/config 2>/dev/null)" ]; then
|
|
|
158 |
echo "GitHub 仓库中没有 config 目录或目录为空"
|
159 |
fi
|
160 |
|
161 |
+
# 检查并恢复 tools 目录
|
162 |
+
if [ -d "$GITHUB_DATA_DIR/tools" ] && [ "$(ls -A $GITHUB_DATA_DIR/tools 2>/dev/null)" ]; then
|
163 |
+
echo "从 GitHub 恢复 tools 目录..."
|
164 |
+
mkdir -p /tools
|
165 |
+
cp -r "$GITHUB_DATA_DIR/tools"/* /tools/
|
166 |
+
echo "GitHub: tools 目录恢复成功"
|
167 |
+
GITHUB_RESTORED=1
|
168 |
+
else
|
169 |
+
echo "GitHub 仓库中没有 tools 目录或目录为空"
|
170 |
+
fi
|
171 |
|
172 |
+
# 如果是 auto 模式,GitHub 恢复后,还可以从 WebDAV 补充恢复
|
173 |
+
if [ "$RESTORE_SOURCE" = "auto" ] && [ "$GITHUB_RESTORED" = "0" ]; then
|
174 |
+
echo "GitHub 中没有找到任何配置,尝试从 WebDAV 恢复..."
|
175 |
+
restore_from_webdav || echo "WebDAV 恢复失败,将在同步时重新备份"
|
|
|
|
|
|
|
|
|
|
|
176 |
elif [ "$GITHUB_RESTORED" = "1" ]; then
|
177 |
+
echo "从 GitHub 恢复配置完成"
|
178 |
else
|
179 |
+
echo "GitHub 中没有可恢复的配置"
|
180 |
fi
|
181 |
fi
|
182 |
|
|
|
200 |
git checkout main || git checkout master
|
201 |
|
202 |
# 复制最新的配置文件
|
203 |
+
echo "检查配置文件变化(GitHub 备份 config 和 tools 目录)..."
|
204 |
|
205 |
# 创建仓库中的目录
|
206 |
mkdir -p ./config
|
207 |
+
mkdir -p ./tools
|
208 |
|
209 |
+
# 同步 config 目录到 GitHub
|
210 |
if [ -d "/mcp-proxy-server/config" ]; then
|
211 |
# 检查是否有非工作目录的文件
|
212 |
CONFIG_FILES=$(ls -A /mcp-proxy-server/config 2>/dev/null | grep -v -E '(github_data|temp_backup|webdav_restore)' || true)
|
|
|
232 |
fi
|
233 |
fi
|
234 |
|
235 |
+
# 同步 tools 目录到 GitHub(处理多个MCP仓库)
|
236 |
+
if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
|
237 |
+
# 清空目标目录
|
238 |
+
rm -rf ./tools/*
|
239 |
+
|
240 |
+
echo "处理 tools 目录中的 MCP 工具..."
|
241 |
+
|
242 |
+
PROCESSED_COUNT=0
|
243 |
+
|
244 |
+
# 逐个处理 tools 目录下的MCP工具
|
245 |
+
for item in /tools/*; do
|
246 |
+
if [ -e "$item" ]; then
|
247 |
+
BASENAME=$(basename "$item")
|
248 |
+
|
249 |
+
if [ -d "$item" ]; then
|
250 |
+
echo " 处理 MCP 工具: $BASENAME"
|
251 |
+
|
252 |
+
# 检查是否是Git仓库
|
253 |
+
if [ -d "$item/.git" ]; then
|
254 |
+
echo " → 检测到Git仓库,排除.git目录"
|
255 |
+
fi
|
256 |
+
|
257 |
+
# 创建目标目录
|
258 |
+
mkdir -p "./tools/$BASENAME"
|
259 |
+
|
260 |
+
# 复制目录内容
|
261 |
+
if [ "$(ls -A "$item" 2>/dev/null)" ]; then
|
262 |
+
# 复制所有普通文件和目录(排除.git)
|
263 |
+
for subitem in "$item"/*; do
|
264 |
+
if [ -e "$subitem" ] && [ "$(basename "$subitem")" != ".git" ]; then
|
265 |
+
cp -r "$subitem" "./tools/$BASENAME/" 2>/dev/null || true
|
266 |
+
fi
|
267 |
+
done
|
268 |
+
|
269 |
+
# 复制隐藏文件,但排除 .git 目录
|
270 |
+
for hidden in "$item"/.[!.]*; do
|
271 |
+
if [ -e "$hidden" ] && [ "$(basename "$hidden")" != ".git" ]; then
|
272 |
+
cp -r "$hidden" "./tools/$BASENAME/" 2>/dev/null || true
|
273 |
+
fi
|
274 |
+
done
|
275 |
+
|
276 |
+
# 检查复制结果
|
277 |
+
COPIED_FILES=$(ls -A "./tools/$BASENAME" 2>/dev/null | wc -l)
|
278 |
+
echo " → 已复制 $COPIED_FILES 个文件/目录"
|
279 |
+
else
|
280 |
+
# 空目录创建 .gitkeep
|
281 |
+
touch "./tools/$BASENAME/.gitkeep"
|
282 |
+
echo " → 空目录,已创建 .gitkeep"
|
283 |
+
fi
|
284 |
+
|
285 |
+
PROCESSED_COUNT=$((PROCESSED_COUNT + 1))
|
286 |
+
else
|
287 |
+
# 直接复制文件
|
288 |
+
echo " 复制文件: $BASENAME"
|
289 |
+
cp "$item" "./tools/" 2>/dev/null || true
|
290 |
+
PROCESSED_COUNT=$((PROCESSED_COUNT + 1))
|
291 |
+
fi
|
292 |
+
fi
|
293 |
+
done
|
294 |
+
|
295 |
+
# 显示处理结果摘要
|
296 |
+
if [ "$PROCESSED_COUNT" -gt 0 ]; then
|
297 |
+
echo "总计处理 $PROCESSED_COUNT 个 MCP 工具"
|
298 |
+
fi
|
299 |
+
fi
|
300 |
|
301 |
# 检查是否有变化
|
302 |
CONFIG_CHANGED=0
|
|
|
304 |
|
305 |
# 检查 config 目录变化(用于 GitHub 备份)
|
306 |
if [[ -n $(git status -s) ]]; then
|
|
|
307 |
CONFIG_CHANGED=1
|
308 |
fi
|
309 |
|
|
|
316 |
if [ -f "$TOOLS_LAST_CHECK_FILE" ]; then
|
317 |
LAST_TOOLS_TIME=$(cat "$TOOLS_LAST_CHECK_FILE" 2>/dev/null || echo "0")
|
318 |
if [ "$CURRENT_TOOLS_TIME" != "$LAST_TOOLS_TIME" ]; then
|
|
|
319 |
TOOLS_CHANGED=1
|
320 |
fi
|
321 |
else
|
|
|
322 |
TOOLS_CHANGED=1
|
323 |
fi
|
324 |
|
|
|
329 |
# 根据变化情况执行备份
|
330 |
if [ "$CONFIG_CHANGED" = "1" ] || [ "$TOOLS_CHANGED" = "1" ]; then
|
331 |
echo "检测到文件变化,开始备份..."
|
|
|
|
|
332 |
|
333 |
# GitHub 备份(仅当 config 有变化时)
|
334 |
if [ "$CONFIG_CHANGED" = "1" ]; then
|
335 |
+
echo "→ GitHub 备份 (config + tools)"
|
336 |
+
git add config/ tools/
|
337 |
+
git commit -m "Auto sync config and tools $(date '+%Y-%m-%d %H:%M:%S')"
|
338 |
+
git push origin HEAD >/dev/null 2>&1 && echo " ✓ 推送成功" || echo " ✗ 推送失败"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
339 |
fi
|
340 |
|
341 |
# WebDAV 备份(当 config 或 tools 有变化时)
|
342 |
if [ -z "$WEBDAV_URL" ] || [ -z "$WEBDAV_USERNAME" ] || [ -z "$WEBDAV_PASSWORD" ]; then
|
343 |
+
echo " WebDAV 环境变量缺失,跳过"
|
344 |
else
|
345 |
+
echo "→ WebDAV 备份 (config + tools)"
|
346 |
# 使用时间戳(年月日时分),每次同步都创建新备份
|
347 |
FILENAME="mcp_backup_$(date +'%Y%m%d_%H%M').tar.gz"
|
348 |
|
349 |
# 创建临时备份压缩包(使用独立目录)
|
350 |
TEMP_DIR="$WORK_DIR/temp_backup"
|
351 |
+
rm -rf "$TEMP_DIR"
|
352 |
mkdir -p "$TEMP_DIR"
|
353 |
|
354 |
# 复制要备份的目录到临时目录(WebDAV 备份包含 config 和 tools)
|
355 |
BACKUP_CREATED=0
|
356 |
|
357 |
if [ -d "/mcp-proxy-server/config" ]; then
|
|
|
|
|
358 |
CONFIG_FILES=$(ls -A /mcp-proxy-server/config 2>/dev/null | grep -v -E '(github_data|temp_backup|webdav_restore)' || true)
|
359 |
|
360 |
if [ -n "$CONFIG_FILES" ]; then
|
|
|
361 |
mkdir -p "$TEMP_DIR/config"
|
|
|
|
|
362 |
for item in /mcp-proxy-server/config/*; do
|
363 |
if [ -e "$item" ]; then
|
364 |
BASENAME=$(basename "$item")
|
365 |
case "$BASENAME" in
|
366 |
github_data|temp_backup|webdav_restore)
|
|
|
367 |
;;
|
368 |
*)
|
369 |
if [ -d "$item" ]; then
|
|
|
375 |
esac
|
376 |
fi
|
377 |
done
|
|
|
|
|
378 |
fi
|
379 |
fi
|
380 |
|
381 |
if [ -d "/tools" ] && [ "$(ls -A /tools 2>/dev/null)" ]; then
|
|
|
382 |
mkdir -p "$TEMP_DIR/tools"
|
|
|
|
|
383 |
for item in /tools/*; do
|
384 |
if [ -e "$item" ]; then
|
385 |
BASENAME=$(basename "$item")
|
|
|
|
|
386 |
if [ -d "$item" ]; then
|
|
|
387 |
mkdir -p "$TEMP_DIR/tools/$BASENAME"
|
|
|
|
|
388 |
if [ "$(ls -A "$item" 2>/dev/null)" ]; then
|
389 |
cp -r "$item"/* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null && BACKUP_CREATED=1
|
|
|
390 |
cp -r "$item"/.[!.]* "$TEMP_DIR/tools/$BASENAME/" 2>/dev/null || true
|
391 |
else
|
|
|
392 |
touch "$TEMP_DIR/tools/$BASENAME/.gitkeep"
|
393 |
BACKUP_CREATED=1
|
394 |
fi
|
395 |
else
|
|
|
396 |
cp "$item" "$TEMP_DIR/tools/" 2>/dev/null && BACKUP_CREATED=1
|
397 |
fi
|
398 |
fi
|
|
|
405 |
tar -czf "../$FILENAME" .
|
406 |
cd - > /dev/null
|
407 |
|
408 |
+
curl -T "$WORK_DIR/$FILENAME" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$WEBDAV_URL/$FILENAME" >/dev/null 2>&1 && echo " ✓ 上传成功" || echo " ✗ 上传失败"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
rm -f "$WORK_DIR/$FILENAME"
|
410 |
else
|
411 |
+
echo " ✗ 无文件可备份"
|
412 |
fi
|
413 |
|
|
|
414 |
rm -rf "$TEMP_DIR"
|
415 |
fi
|
416 |
|
417 |
+
echo "备份完成"
|
418 |
|
419 |
else
|
420 |
+
echo "无文件变化,跳过备份"
|
|
|
|
|
421 |
fi
|
422 |
|
423 |
# 返回上级目录
|
|
|
425 |
|
426 |
# 3. 等待统一的时间间隔
|
427 |
SYNC_INTERVAL=${SYNC_INTERVAL:-7200} # 默认间隔时间为 7200 秒
|
428 |
+
echo "等待 ${SYNC_INTERVAL} 秒后进行下一次检查..."
|
|
|
429 |
sleep $SYNC_INTERVAL
|
430 |
|
431 |
done
|