mao123qw commited on
Commit
c4ce5a9
·
verified ·
1 Parent(s): a5bca03

Update install_reader.sh

Browse files
Files changed (1) hide show
  1. install_reader.sh +38 -1
install_reader.sh CHANGED
@@ -2,6 +2,12 @@
2
 
3
  set -euo pipefail
4
 
 
 
 
 
 
 
5
  # 获取最新版本的重定向URL
6
  echo "正在获取最新版本信息..."
7
  redirect_url=$(curl -Ls -o /dev/null -w '%{url_effective}' 'https://github.com/hectorqin/reader/releases/latest')
@@ -30,7 +36,7 @@ zip_file="reader-server-${version}.zip"
30
  echo "正在解压文件..."
31
  unzip "$zip_file"
32
 
33
- #+x
34
  find . -type f -exec chmod +x {} +
35
 
36
  # 处理解压目录结构
@@ -40,6 +46,37 @@ if [ -n "$dir_name" ]; then
40
  cd "$dir_name"
41
  fi
42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  # 执行启动脚本
44
  if [ -f "./startup.sh" ]; then
45
  echo "正在启动服务..."
 
2
 
3
  set -euo pipefail
4
 
5
+ # 检查WebDAV环境变量
6
+ if [[ -z "${WEBDAV_URL}" || -z "${WEBDAV_USER}" || -z "${WEBDAV_PASS}" ]]; then
7
+ echo "错误:必须设置WEBDAV_URL、WEBDAV_USER、WEBDAV_PASS环境变量"
8
+ exit 1
9
+ fi
10
+
11
  # 获取最新版本的重定向URL
12
  echo "正在获取最新版本信息..."
13
  redirect_url=$(curl -Ls -o /dev/null -w '%{url_effective}' 'https://github.com/hectorqin/reader/releases/latest')
 
36
  echo "正在解压文件..."
37
  unzip "$zip_file"
38
 
39
+ # +x权限
40
  find . -type f -exec chmod +x {} +
41
 
42
  # 处理解压目录结构
 
46
  cd "$dir_name"
47
  fi
48
 
49
+ # 数据恢复逻辑
50
+ DATA_DIR="../storage"
51
+ if [ ! -d "${DATA_DIR}" ] || [ -z "$(ls -A ${DATA_DIR})" ]; then
52
+ echo "数据目录不存在或为空,尝试从WebDAV恢复备份..."
53
+ if curl -u "${WEBDAV_USER}:${WEBDAV_PASS}" "${WEBDAV_URL}/latest-backup.tar.gz" -o /tmp/latest-backup.tar.gz; then
54
+ echo "下载备份成功,正在解压..."
55
+ mkdir -p "${DATA_DIR}"
56
+ tar -xzf /tmp/latest-backup.tar.gz -C "${DATA_DIR}" 2>/dev/null || true
57
+ echo "数据恢复完成"
58
+ else
59
+ echo "警告:无法下载备份文件,将使用空数据目录启动"
60
+ fi
61
+ else
62
+ echo "数据目录已存在,跳过恢复"
63
+ fi
64
+
65
+ # 启动定时备份任务
66
+ echo "启动定时备份任务,每半小时备份一次到WebDAV..."
67
+ (
68
+ while true; do
69
+ sleep 1800
70
+ echo "$(date '+%Y-%m-%d %T'): 开始备份数据..."
71
+ BACKUP_FILE="/tmp/backup-$(date +%Y%m%d%H%M%S).tar.gz"
72
+ tar -czf "${BACKUP_FILE}" -C "${DATA_DIR}" . >/dev/null 2>&1
73
+ curl -u "${WEBDAV_USER}:${WEBDAV_PASS}" -T "${BACKUP_FILE}" "${WEBDAV_URL}/backup/$(basename "${BACKUP_FILE}")" --silent
74
+ curl -u "${WEBDAV_USER}:${WEBDAV_PASS}" -T "${BACKUP_FILE}" "${WEBDAV_URL}/latest-backup.tar.gz" --silent
75
+ rm -f "${BACKUP_FILE}"
76
+ echo "$(date '+%Y-%m-%d %T'): 备份完成"
77
+ done
78
+ ) &
79
+
80
  # 执行启动脚本
81
  if [ -f "./startup.sh" ]; then
82
  echo "正在启动服务..."