Update sync_data.sh
Browse files- sync_data.sh +37 -8
sync_data.sh
CHANGED
@@ -95,19 +95,35 @@ EOL
|
|
95 |
# 首次启动时的数据恢复策略
|
96 |
echo "开始初始化数据恢复..."
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
# 首先尝试从 WebDAV 恢复最新文件
|
99 |
echo "正在尝试从 WebDAV 获取文件列表..."
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
# 获取 WebDAV 目录中的文件列表并找出最新的备份文件
|
102 |
-
webdav_files=$(
|
103 |
|
104 |
if [ -n "$webdav_files" ]; then
|
105 |
# 找出最新的文件 (按文件名排序,取最后一个)
|
106 |
latest_file=$(echo "$webdav_files" | sort | tail -n 1)
|
107 |
echo "找到最新的 WebDAV 备份文件: $latest_file"
|
108 |
|
|
|
|
|
|
|
|
|
109 |
# 下载最新文件
|
110 |
-
curl -L --fail --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$
|
111 |
echo "成功从 WebDAV 下载最新数据库文件: $latest_file"
|
112 |
# 上传到 HuggingFace
|
113 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
@@ -119,7 +135,11 @@ if [ -n "$webdav_files" ]; then
|
|
119 |
} || {
|
120 |
echo "从 WebDAV 下载最新文件失败,尝试下载 WebDAV 的 webui.db..."
|
121 |
|
122 |
-
|
|
|
|
|
|
|
|
|
123 |
echo "成功从 WebDAV 下载主数据库文件"
|
124 |
# 上传到 HuggingFace
|
125 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
@@ -137,7 +157,12 @@ if [ -n "$webdav_files" ]; then
|
|
137 |
}
|
138 |
else
|
139 |
echo "WebDAV 中没有找到符合格式的备份文件,尝试下载 webui.db..."
|
140 |
-
|
|
|
|
|
|
|
|
|
|
|
141 |
echo "成功从 WebDAV 下载主数据库文件"
|
142 |
# 上传到 HuggingFace
|
143 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
@@ -169,13 +194,17 @@ webdav_sync() {
|
|
169 |
FILENAME="webui_$(date +'%m-%d_%H%M').db"
|
170 |
|
171 |
echo "同步到 WebDAV..."
|
|
|
|
|
172 |
|
173 |
# 上传以日期命名的数据库文件
|
174 |
-
curl -L -T "./data/webui.db" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$
|
175 |
echo "WebDAV 上传成功: $FILENAME"
|
176 |
|
177 |
# 覆盖Webdav目录下默认的webui.db文件
|
178 |
-
|
|
|
|
|
179 |
echo "WebDAV 更新主文件成功"
|
180 |
} || {
|
181 |
echo "WebDAV 更新主文件失败"
|
@@ -183,7 +212,8 @@ webdav_sync() {
|
|
183 |
} || {
|
184 |
echo "WebDAV 上传失败,等待重试..."
|
185 |
sleep 10
|
186 |
-
|
|
|
187 |
echo "重试失败,放弃上传。"
|
188 |
}
|
189 |
}
|
@@ -229,4 +259,3 @@ hf_sync() {
|
|
229 |
# 后台启动同步进程
|
230 |
webdav_sync &
|
231 |
hf_sync &
|
232 |
-
|
|
|
95 |
# 首次启动时的数据恢复策略
|
96 |
echo "开始初始化数据恢复..."
|
97 |
|
98 |
+
# 打印 WebDAV 信息(隐藏密码)
|
99 |
+
echo "WebDAV URL: $WEBDAV_URL"
|
100 |
+
echo "WebDAV 用户名: $WEBDAV_USERNAME"
|
101 |
+
masked_password=$(echo $WEBDAV_PASSWORD | sed 's/./*/g')
|
102 |
+
echo "WebDAV 密码: $masked_password"
|
103 |
+
|
104 |
# 首先尝试从 WebDAV 恢复最新文件
|
105 |
echo "正在尝试从 WebDAV 获取文件列表..."
|
106 |
+
echo "PROPFIND 请求: $WEBDAV_URL/openwebui/"
|
107 |
+
|
108 |
+
# 获取并打印 WebDAV 目录内容
|
109 |
+
webdav_list_output=$(curl -v -X PROPFIND --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -H "Depth: 1" "$WEBDAV_URL/openwebui/" 2>&1)
|
110 |
+
echo "WebDAV 目录内容响应:"
|
111 |
+
echo "$webdav_list_output"
|
112 |
|
113 |
# 获取 WebDAV 目录中的文件列表并找出最新的备份文件
|
114 |
+
webdav_files=$(echo "$webdav_list_output" | grep -o '<d:href>[^<]*webui_[0-9][0-9]-[0-9][0-9]\.db</d:href>' | sed 's/<d:href>//g' | sed 's/<\/d:href>//g')
|
115 |
|
116 |
if [ -n "$webdav_files" ]; then
|
117 |
# 找出最新的文件 (按文件名排序,取最后一个)
|
118 |
latest_file=$(echo "$webdav_files" | sort | tail -n 1)
|
119 |
echo "找到最新的 WebDAV 备份文件: $latest_file"
|
120 |
|
121 |
+
# 构建并打印完整下载链接
|
122 |
+
download_url="$WEBDAV_URL$latest_file"
|
123 |
+
echo "下载 URL: $download_url"
|
124 |
+
|
125 |
# 下载最新文件
|
126 |
+
curl -v -L --fail --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$download_url" -o "./data/webui.db" && {
|
127 |
echo "成功从 WebDAV 下载最新数据库文件: $latest_file"
|
128 |
# 上传到 HuggingFace
|
129 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
|
|
135 |
} || {
|
136 |
echo "从 WebDAV 下载最新文件失败,尝试下载 WebDAV 的 webui.db..."
|
137 |
|
138 |
+
# 打印 webui.db 下载链接
|
139 |
+
main_db_url="$WEBDAV_URL/openwebui/webui.db"
|
140 |
+
echo "尝试下载主数据库文件 URL: $main_db_url"
|
141 |
+
|
142 |
+
curl -v -L --fail --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$main_db_url" -o "./data/webui.db" && {
|
143 |
echo "成功从 WebDAV 下载主数据库文件"
|
144 |
# 上传到 HuggingFace
|
145 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
|
|
157 |
}
|
158 |
else
|
159 |
echo "WebDAV 中没有找到符合格式的备份文件,尝试下载 webui.db..."
|
160 |
+
|
161 |
+
# 打印 webui.db 下载链接
|
162 |
+
main_db_url="$WEBDAV_URL/openwebui/webui.db"
|
163 |
+
echo "尝试下载主数据库文件 URL: $main_db_url"
|
164 |
+
|
165 |
+
curl -v -L --fail --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$main_db_url" -o "./data/webui.db" && {
|
166 |
echo "成功从 WebDAV 下载主数据库文件"
|
167 |
# 上传到 HuggingFace
|
168 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
|
|
194 |
FILENAME="webui_$(date +'%m-%d_%H%M').db"
|
195 |
|
196 |
echo "同步到 WebDAV..."
|
197 |
+
upload_url="$WEBDAV_URL/openwebui/$FILENAME"
|
198 |
+
echo "上传 URL: $upload_url"
|
199 |
|
200 |
# 上传以日期命名的数据库文件
|
201 |
+
curl -v -L -T "./data/webui.db" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$upload_url" && {
|
202 |
echo "WebDAV 上传成功: $FILENAME"
|
203 |
|
204 |
# 覆盖Webdav目录下默认的webui.db文件
|
205 |
+
main_file_url="$WEBDAV_URL/openwebui/webui.db"
|
206 |
+
echo "更新主文件 URL: $main_file_url"
|
207 |
+
curl -v -L -T "./data/webui.db" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$main_file_url" && {
|
208 |
echo "WebDAV 更新主文件成功"
|
209 |
} || {
|
210 |
echo "WebDAV 更新主文件失败"
|
|
|
212 |
} || {
|
213 |
echo "WebDAV 上传失败,等待重试..."
|
214 |
sleep 10
|
215 |
+
echo "重试上传 URL: $upload_url"
|
216 |
+
curl -v -L -T "./data/webui.db" --user "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" "$upload_url" || {
|
217 |
echo "重试失败,放弃上传。"
|
218 |
}
|
219 |
}
|
|
|
259 |
# 后台启动同步进程
|
260 |
webdav_sync &
|
261 |
hf_sync &
|
|