flzta commited on
Commit
7d404ab
·
verified ·
1 Parent(s): 255d8bc

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +22 -17
sync_data.sh CHANGED
@@ -1,7 +1,13 @@
1
  #!/bin/sh
2
 
 
 
 
 
 
 
3
  # 检查环境变量
4
- if [ -z "$HF_TOKEN" ] || [ -z "$DATASET_ID" ]; then
5
  echo "Starting without backup functionality - missing HF_TOKEN or DATASET_ID"
6
  exec ./cloudreve
7
  exit 0
@@ -62,7 +68,7 @@ try:
62
  backup_files = [f for f in files if f.startswith('cloudreve_backup_') and f.endswith('.tar.gz')]
63
 
64
  if not backup_files:
65
- print('No backup files found on HuggingFace Dataset')
66
  return
67
 
68
  latest_backup = sorted(backup_files)[-1]
@@ -76,59 +82,58 @@ try:
76
  )
77
 
78
  if filepath and os.path.exists(filepath):
79
- print(f'Found latest backup: {latest_backup}, attempting to restore...')
80
  # 删除现有的数据目录
81
  if os.path.isdir('/opt/cloudreve/data'):
82
- echo "Deleting existing data directory: /opt/cloudreve/data"
83
- rm -rf /opt/cloudreve/data
84
  # 创建数据目录(如果被删除)
85
  os.makedirs('/opt/cloudreve/data', exist_ok=True)
86
 
87
  with tarfile.open(filepath, 'r:gz') as tar:
88
  tar.extractall('/opt/cloudreve/data')
89
- echo f'Successfully restored backup from {latest_backup}'
90
 
91
  except Exception as e:
92
- echo f'Error downloading backup from HuggingFace Dataset: {e}'
93
  "
94
  }
95
 
96
  # 首次启动时下载最新备份和后续每次启动时都尝试恢复
97
- echo "Attempting to download and restore latest backup from HuggingFace Dataset..."
98
  download_latest_backup
99
 
100
  # 同步函数
101
  sync_data() {
102
  while true; do
103
- echo "Starting sync process at $(date)"
104
 
105
  if [ -d /opt/cloudreve/data ]; then
106
  timestamp=$(date +%Y%m%d_%H%M%S)
107
  backup_file="cloudreve_backup_${timestamp}.tar.gz"
108
  backup_file_path="/tmp/${backup_file}"
109
 
110
- echo "Creating backup archive: ${backup_file_path}"
111
- echo "Listing content of /opt/cloudreve/data before backup:"
112
  ls -al /opt/cloudreve/data
113
 
114
  # 尝试直接打包 /opt/cloudreve/data 目录,并显示详细信息
115
  tar -czvf "${backup_file_path}" /opt/cloudreve/data
116
 
117
  if [ -f "${backup_file_path}" ]; then
118
- echo "Uploading backup to HuggingFace Dataset..."
119
  upload_backup "${backup_file_path}" "${backup_file}"
120
  rm -f "${backup_file_path}"
121
  else:
122
- echo "Failed to create backup archive."
123
  fi
124
-
125
  else:
126
- echo "Data directory does not exist yet, waiting for next sync..."
127
  fi
128
 
129
  SYNC_INTERVAL=${SYNC_INTERVAL:-7200}
130
- echo "Next sync in ${SYNC_INTERVAL} seconds..."
131
- sleep $SYNC_INTERVAL
132
  done
133
  }
134
 
 
1
  #!/bin/sh
2
 
3
+ # 设置默认的同步间隔为 600 秒 (10 分钟),可以作为环境变量传入
4
+ SYNC_INTERVAL=${SYNC_INTERVAL:-600}
5
+
6
+ # 设置备份保留数量,默认为 5,可以作为环境变量传入
7
+ BACKUP_RETENTION=${BACKUP_RETENTION:-5}
8
+
9
  # 检查环境变量
10
+ if [[ -z "$HF_TOKEN" ]] || [[ -z "$DATASET_ID" ]]; then
11
  echo "Starting without backup functionality - missing HF_TOKEN or DATASET_ID"
12
  exec ./cloudreve
13
  exit 0
 
68
  backup_files = [f for f in files if f.startswith('cloudreve_backup_') and f.endswith('.tar.gz')]
69
 
70
  if not backup_files:
71
+ print(' HuggingFace Dataset 上没有找到备份文件')
72
  return
73
 
74
  latest_backup = sorted(backup_files)[-1]
 
82
  )
83
 
84
  if filepath and os.path.exists(filepath):
85
+ print(f'找到最新的备份:{latest_backup},尝试恢复...')
86
  # 删除现有的数据目录
87
  if os.path.isdir('/opt/cloudreve/data'):
88
+ echo "删除现有的数据目录:/opt/cloudreve/data"
89
+ shutil.rmtree('/opt/cloudreve/data')
90
  # 创建数据目录(如果被删除)
91
  os.makedirs('/opt/cloudreve/data', exist_ok=True)
92
 
93
  with tarfile.open(filepath, 'r:gz') as tar:
94
  tar.extractall('/opt/cloudreve/data')
95
+ echo f'成功从 {latest_backup} 恢复备份'
96
 
97
  except Exception as e:
98
+ echo f' HuggingFace Dataset 下载备份时出错:{e}'
99
  "
100
  }
101
 
102
  # 首次启动时下载最新备份和后续每次启动时都尝试恢复
103
+ echo "尝试从 HuggingFace Dataset 下载并恢复最新备份..."
104
  download_latest_backup
105
 
106
  # 同步函数
107
  sync_data() {
108
  while true; do
109
+ echo "开始同步进程于 $(date)"
110
 
111
  if [ -d /opt/cloudreve/data ]; then
112
  timestamp=$(date +%Y%m%d_%H%M%S)
113
  backup_file="cloudreve_backup_${timestamp}.tar.gz"
114
  backup_file_path="/tmp/${backup_file}"
115
 
116
+ echo "创建备份归档:${backup_file_path}"
117
+ echo "在备份之前列出 /opt/cloudreve/data 的内容:"
118
  ls -al /opt/cloudreve/data
119
 
120
  # 尝试直接打包 /opt/cloudreve/data 目录,并显示详细信息
121
  tar -czvf "${backup_file_path}" /opt/cloudreve/data
122
 
123
  if [ -f "${backup_file_path}" ]; then
124
+ echo "正在上传备份到 HuggingFace Dataset..."
125
  upload_backup "${backup_file_path}" "${backup_file}"
126
  rm -f "${backup_file_path}"
127
  else:
128
+ echo "创建备份归档失败。"
129
  fi
 
130
  else:
131
+ echo "数据目录尚不存在,等待下一次同步..."
132
  fi
133
 
134
  SYNC_INTERVAL=${SYNC_INTERVAL:-7200}
135
+ echo "下一次同步将在 ${SYNC_INTERVAL} 秒后进行..."
136
+ sleep "$SYNC_INTERVAL"
137
  done
138
  }
139