flzta commited on
Commit
79d658f
·
verified ·
1 Parent(s): 8633cab

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +60 -4
sync_data.sh CHANGED
@@ -1,9 +1,10 @@
1
  #!/bin/sh
2
 
3
  # 设置默认的同步间隔为 600 秒 (10 分钟),可以作为环境变量传入
4
- SYNC_INTERVAL=<span class="math-inline">\{SYNC\_INTERVAL\:\-600\}
5
- \# 设置备份保留数量,默认为 5,可以作为环境变量传入
6
- BACKUP\_RETENTION\=</span>{BACKUP_RETENTION:-5}
 
7
 
8
  # 检查环境变量
9
  if [[ -z "$HF_TOKEN" ]] || [[ -z "$DATASET_ID" ]]; then
@@ -85,4 +86,59 @@ try:
85
  # 删除现有的数据目录
86
  if os.path.isdir('/opt/cloudreve/data'):
87
  print('删除现有的数据目录:/opt/cloudreve/data')
88
- shutil.rmtree('/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
86
  # 删除现有的数据目录
87
  if os.path.isdir('/opt/cloudreve/data'):
88
  print('删除现有的数据目录:/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
+ print(f'成功从 {latest_backup} 恢复备份')
96
+
97
+ except Exception as e:
98
+ print('从 HuggingFace Dataset 下载备份时出错:{}'.format(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
+
140
+ # 后台启动同步进程
141
+ sync_data &
142
+
143
+ # 启动 Cloudreve
144
+ exec ./cloudreve