aappeekk commited on
Commit
d169168
·
verified ·
1 Parent(s): 9b31860

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +9 -1
sync_data.sh CHANGED
@@ -64,7 +64,7 @@ print("[INFO] Restore completed.")
64
  EOF
65
 
66
  #################################
67
- # 3. 后台备份循环(不再修改 /app
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