Update sync_data.sh
Browse files- sync_data.sh +11 -19
sync_data.sh
CHANGED
|
@@ -1,10 +1,5 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
| 3 |
-
echo "sync_data.sh script started at $(date)"
|
| 4 |
-
|
| 5 |
-
# 设置 app 的默认名称 (与 Dockerfile 中一致)
|
| 6 |
-
# APP_NAME=${APP_NAME:-"app"} # 去掉 APP_NAME 变量
|
| 7 |
-
|
| 8 |
# 检查环境变量
|
| 9 |
if [[ -z "$WEBDAV_URL" ]] || [[ -z "$WEBDAV_USERNAME" ]] || [[ -z "$WEBDAV_PASSWORD" ]]; then
|
| 10 |
echo "Starting without backup functionality - missing WEBDAV_URL, WEBDAV_USERNAME, or WEBDAV_PASSWORD"
|
|
@@ -22,7 +17,7 @@ fi
|
|
| 22 |
# 激活虚拟环境
|
| 23 |
source /opt/venv/bin/activate
|
| 24 |
|
| 25 |
-
# 设置
|
| 26 |
APP_DATA_DIR="/opt/app/app_data"
|
| 27 |
|
| 28 |
# 下载最新备份并恢复
|
|
@@ -59,24 +54,21 @@ with requests.get(f'$FULL_WEBDAV_URL/{latest_backup}', auth=('$WEBDAV_USERNAME',
|
|
| 59 |
shutil.rmtree('$APP_DATA_DIR')
|
| 60 |
os.makedirs('$APP_DATA_DIR', exist_ok=True)
|
| 61 |
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
|
| 66 |
-
|
|
|
|
|
|
|
| 67 |
else:
|
| 68 |
print(f'下载备份失败:{r.status_code}')
|
| 69 |
"
|
| 70 |
}
|
| 71 |
|
| 72 |
# 首次启动时下载最新备份
|
| 73 |
-
echo "
|
| 74 |
-
|
| 75 |
-
echo "App data directory does not exist. Downloading latest backup from WebDAV..."
|
| 76 |
-
restore_backup
|
| 77 |
-
else:
|
| 78 |
-
echo "App data directory already exists. Skipping initial backup download."
|
| 79 |
-
fi
|
| 80 |
|
| 81 |
# 同步函数
|
| 82 |
sync_data() {
|
|
@@ -94,7 +86,7 @@ sync_data() {
|
|
| 94 |
curl -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -T "/tmp/${backup_file}" "$FULL_WEBDAV_URL/${backup_file}"
|
| 95 |
if [ $? -eq 0 ]; then
|
| 96 |
echo "Successfully uploaded ${backup_file} to WebDAV"
|
| 97 |
-
else
|
| 98 |
echo "Failed to upload ${backup_file} to WebDAV"
|
| 99 |
fi
|
| 100 |
|
|
@@ -121,7 +113,7 @@ else:
|
|
| 121 |
|
| 122 |
rm -f "/tmp/${backup_file}"
|
| 123 |
else:
|
| 124 |
-
echo "
|
| 125 |
fi
|
| 126 |
|
| 127 |
SYNC_INTERVAL=${SYNC_INTERVAL:-600}
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
# 检查环境变量
|
| 4 |
if [[ -z "$WEBDAV_URL" ]] || [[ -z "$WEBDAV_USERNAME" ]] || [[ -z "$WEBDAV_PASSWORD" ]]; then
|
| 5 |
echo "Starting without backup functionality - missing WEBDAV_URL, WEBDAV_USERNAME, or WEBDAV_PASSWORD"
|
|
|
|
| 17 |
# 激活虚拟环境
|
| 18 |
source /opt/venv/bin/activate
|
| 19 |
|
| 20 |
+
# 设置 Cloudreve 数据目录 (根据您的实际情况,如果您的应用需要特定的数据目录,请修改这里)
|
| 21 |
APP_DATA_DIR="/opt/app/app_data"
|
| 22 |
|
| 23 |
# 下载最新备份并恢复
|
|
|
|
| 54 |
shutil.rmtree('$APP_DATA_DIR')
|
| 55 |
os.makedirs('$APP_DATA_DIR', exist_ok=True)
|
| 56 |
|
| 57 |
+
# 解压备份文件
|
| 58 |
+
with tarfile.open(f'/tmp/{latest_backup}', 'r:gz') as tar:
|
| 59 |
+
tar.extractall('$APP_DATA_DIR')
|
| 60 |
|
| 61 |
+
print(f'成功从 {latest_backup} 恢复备份')
|
| 62 |
+
else:
|
| 63 |
+
print('下载的备份文件不存在')
|
| 64 |
else:
|
| 65 |
print(f'下载备份失败:{r.status_code}')
|
| 66 |
"
|
| 67 |
}
|
| 68 |
|
| 69 |
# 首次启动时下载最新备份
|
| 70 |
+
echo "Downloading latest backup from WebDAV..."
|
| 71 |
+
restore_backup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
|
| 73 |
# 同步函数
|
| 74 |
sync_data() {
|
|
|
|
| 86 |
curl -u "$WEBDAV_USERNAME:$WEBDAV_PASSWORD" -T "/tmp/${backup_file}" "$FULL_WEBDAV_URL/${backup_file}"
|
| 87 |
if [ $? -eq 0 ]; then
|
| 88 |
echo "Successfully uploaded ${backup_file} to WebDAV"
|
| 89 |
+
else:
|
| 90 |
echo "Failed to upload ${backup_file} to WebDAV"
|
| 91 |
fi
|
| 92 |
|
|
|
|
| 113 |
|
| 114 |
rm -f "/tmp/${backup_file}"
|
| 115 |
else:
|
| 116 |
+
echo "Data directory does not exist yet, waiting for next sync..."
|
| 117 |
fi
|
| 118 |
|
| 119 |
SYNC_INTERVAL=${SYNC_INTERVAL:-600}
|