Spaces:
Paused
Paused
Update sync_data.sh
Browse files- sync_data.sh +10 -10
sync_data.sh
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
|
| 3 |
# 检查环境变量
|
| 4 |
if [[ -z "$WEBDAV_URL" ]] || [[ -z "$WEBDAV_USERNAME" ]] || [[ -z "$WEBDAV_PASSWORD" ]]; then
|
| 5 |
-
echo "
|
| 6 |
exit 0
|
| 7 |
fi
|
| 8 |
|
|
@@ -57,7 +57,7 @@ with requests.get(f'$FULL_WEBDAV_URL/{latest_backup}', auth=('$WEBDAV_USERNAME',
|
|
| 57 |
print(f'成功从 {latest_backup} 恢复备份')
|
| 58 |
break
|
| 59 |
else:
|
| 60 |
-
print('
|
| 61 |
# 删除临时目录
|
| 62 |
try:
|
| 63 |
shutil.rmtree(temp_dir)
|
|
@@ -72,13 +72,13 @@ with requests.get(f'$FULL_WEBDAV_URL/{latest_backup}', auth=('$WEBDAV_USERNAME',
|
|
| 72 |
}
|
| 73 |
|
| 74 |
# 首次启动时下载最新备份
|
| 75 |
-
echo "
|
| 76 |
restore_backup
|
| 77 |
|
| 78 |
# 同步函数
|
| 79 |
sync_data() {
|
| 80 |
while true; do
|
| 81 |
-
echo "
|
| 82 |
|
| 83 |
if [ -f "./data/webui.db" ]; then
|
| 84 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
|
@@ -90,9 +90,9 @@ sync_data() {
|
|
| 90 |
# 上传新备份到WebDAV
|
| 91 |
curl -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -T "/tmp/${backup_file}" "$FULL_WEBDAV_URL/${backup_file}"
|
| 92 |
if [ $? -eq 0 ]; then
|
| 93 |
-
echo "
|
| 94 |
else
|
| 95 |
-
echo "
|
| 96 |
fi
|
| 97 |
|
| 98 |
# 清理旧备份文件
|
|
@@ -111,18 +111,18 @@ if len(backups) > 5:
|
|
| 111 |
to_delete = len(backups) - 5
|
| 112 |
for file in backups[:to_delete]:
|
| 113 |
client.clean(file)
|
| 114 |
-
print(f'
|
| 115 |
else:
|
| 116 |
-
print('
|
| 117 |
" 2>&1
|
| 118 |
|
| 119 |
rm -f "/tmp/${backup_file}"
|
| 120 |
else
|
| 121 |
-
echo "
|
| 122 |
fi
|
| 123 |
|
| 124 |
SYNC_INTERVAL=${SYNC_INTERVAL:-600}
|
| 125 |
-
echo "
|
| 126 |
sleep $SYNC_INTERVAL
|
| 127 |
done
|
| 128 |
}
|
|
|
|
| 2 |
|
| 3 |
# 检查环境变量
|
| 4 |
if [[ -z "$WEBDAV_URL" ]] || [[ -z "$WEBDAV_USERNAME" ]] || [[ -z "$WEBDAV_PASSWORD" ]]; then
|
| 5 |
+
echo "缺少 WEBDAV_URL、WEBDAV_USERNAME 或 WEBDAV_PASSWORD,启动时将不包含备份功能"
|
| 6 |
exit 0
|
| 7 |
fi
|
| 8 |
|
|
|
|
| 57 |
print(f'成功从 {latest_backup} 恢复备份')
|
| 58 |
break
|
| 59 |
else:
|
| 60 |
+
print('备份文件中未找到 webui.db')
|
| 61 |
# 删除临时目录
|
| 62 |
try:
|
| 63 |
shutil.rmtree(temp_dir)
|
|
|
|
| 72 |
}
|
| 73 |
|
| 74 |
# 首次启动时下载最新备份
|
| 75 |
+
echo "正在从 WebDAV 下载最新备份..."
|
| 76 |
restore_backup
|
| 77 |
|
| 78 |
# 同步函数
|
| 79 |
sync_data() {
|
| 80 |
while true; do
|
| 81 |
+
echo "在 $(date) 开始同步进程"
|
| 82 |
|
| 83 |
if [ -f "./data/webui.db" ]; then
|
| 84 |
timestamp=$(date +%Y%m%d_%H%M%S)
|
|
|
|
| 90 |
# 上传新备份到WebDAV
|
| 91 |
curl -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -T "/tmp/${backup_file}" "$FULL_WEBDAV_URL/${backup_file}"
|
| 92 |
if [ $? -eq 0 ]; then
|
| 93 |
+
echo "成功将 ${backup_file} 上传至 WebDAV"
|
| 94 |
else
|
| 95 |
+
echo "上传 ${backup_file} 至 WebDAV 失败"
|
| 96 |
fi
|
| 97 |
|
| 98 |
# 清理旧备份文件
|
|
|
|
| 111 |
to_delete = len(backups) - 5
|
| 112 |
for file in backups[:to_delete]:
|
| 113 |
client.clean(file)
|
| 114 |
+
print(f'成功删除 {file}。')
|
| 115 |
else:
|
| 116 |
+
print('仅找到 {} 个备份,无需清理。'.format(len(backups)))
|
| 117 |
" 2>&1
|
| 118 |
|
| 119 |
rm -f "/tmp/${backup_file}"
|
| 120 |
else
|
| 121 |
+
echo "数据库文件尚不存在,等待下次同步..."
|
| 122 |
fi
|
| 123 |
|
| 124 |
SYNC_INTERVAL=${SYNC_INTERVAL:-600}
|
| 125 |
+
echo "下次同步将在 ${SYNC_INTERVAL} 秒后进行..."
|
| 126 |
sleep $SYNC_INTERVAL
|
| 127 |
done
|
| 128 |
}
|