Update sync_data.sh
Browse files- sync_data.sh +9 -1
sync_data.sh
CHANGED
|
@@ -64,7 +64,7 @@ print("[INFO] Restore completed.")
|
|
| 64 |
EOF
|
| 65 |
|
| 66 |
#################################
|
| 67 |
-
# 3. 后台备份循环(
|
| 68 |
#################################
|
| 69 |
sync_data() {
|
| 70 |
while true; do
|
|
@@ -72,8 +72,16 @@ sync_data() {
|
|
| 72 |
ts=$(date +%Y%m%d_%H%M%S)
|
| 73 |
file="koishi_backup_${ts}.tar.gz"
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
tar -czf "/tmp/$file" -C /app .
|
| 76 |
|
|
|
|
|
|
|
|
|
|
| 77 |
# 使用 Python WebDAV 客户端上传文件
|
| 78 |
python3 <<EOF
|
| 79 |
import os
|
|
|
|
| 64 |
EOF
|
| 65 |
|
| 66 |
#################################
|
| 67 |
+
# 3. 后台备份循环(使用文件锁)
|
| 68 |
#################################
|
| 69 |
sync_data() {
|
| 70 |
while true; do
|
|
|
|
| 72 |
ts=$(date +%Y%m%d_%H%M%S)
|
| 73 |
file="koishi_backup_${ts}.tar.gz"
|
| 74 |
|
| 75 |
+
# 使用文件锁确保压缩期间不被其他进程干扰
|
| 76 |
+
exec 200>/tmp/koishi_backup.lock
|
| 77 |
+
flock -n 200 || { echo "[ERROR] Could not lock backup process, skipping this cycle."; return 1; }
|
| 78 |
+
|
| 79 |
+
# 执行备份操作
|
| 80 |
tar -czf "/tmp/$file" -C /app .
|
| 81 |
|
| 82 |
+
# 释放锁
|
| 83 |
+
flock -u 200
|
| 84 |
+
|
| 85 |
# 使用 Python WebDAV 客户端上传文件
|
| 86 |
python3 <<EOF
|
| 87 |
import os
|