From b73ccdefed56de3d09148f27560f613051a4b95b Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Thu, 23 Jul 2026 18:10:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20install.sh=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=A8=A1=E5=BC=8F=EF=BC=8C=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E5=B7=B2=E6=9C=89=E5=AE=89=E8=A3=85=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E7=95=99=E9=85=8D=E7=BD=AE=E5=92=8C=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy/install.sh | 46 ++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/scripts/deploy/install.sh b/scripts/deploy/install.sh index dcaba3c..5868e29 100644 --- a/scripts/deploy/install.sh +++ b/scripts/deploy/install.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SafeSight Control 一键安装脚本 +# SafeSight Control 一键安装/升级脚本 # 用法: sudo bash install.sh set -e @@ -11,8 +11,16 @@ fi SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" INSTALL_DIR="${1:-/opt/safesightd}" ARCH=$(uname -m) +UPGRADE=false -echo "========== SafeSight Control 安装 ==========" +if [ -f "$INSTALL_DIR/bin/safesightd" ]; then + UPGRADE=true + echo "========== SafeSight Control 升级 ==========" + echo "检测到已有安装,将保留数据库和配置文件" + systemctl stop safesightd 2>/dev/null || true +else + echo "========== SafeSight Control 安装 ==========" +fi echo "安装目录: $INSTALL_DIR" # 选二进制 @@ -28,24 +36,36 @@ fi # 创建目录 mkdir -p "$INSTALL_DIR"/{bin,config,data} -# 复制文件 +# 复制二进制(始终更新) cp "$SCRIPT_DIR/$BIN" "$INSTALL_DIR/bin/safesightd" chmod +x "$INSTALL_DIR/bin/safesightd" -[ -f "$SCRIPT_DIR/safesightd.json.example" ] && cp "$SCRIPT_DIR/safesightd.json.example" "$INSTALL_DIR/config/safesightd.json" -[ -d "$SCRIPT_DIR/configs" ] && cp -r "$SCRIPT_DIR/configs" "$INSTALL_DIR/" -[ -d "$SCRIPT_DIR/tools" ] && cp -r "$SCRIPT_DIR/tools" "$INSTALL_DIR/" -[ -d "$SCRIPT_DIR/scripts" ] && cp -r "$SCRIPT_DIR/scripts" "$INSTALL_DIR/" -[ -d "$SCRIPT_DIR/deps" ] && cp -r "$SCRIPT_DIR/deps" "$INSTALL_DIR/" +# 配置文件:仅在全新安装时创建,升级保留 +if [ "$UPGRADE" = false ] && [ -f "$SCRIPT_DIR/safesightd.json.example" ]; then + cp "$SCRIPT_DIR/safesightd.json.example" "$INSTALL_DIR/config/safesightd.json" + echo " ✓ 配置已创建(请修改 agent_token)" +else + echo " ✓ 配置文件保留" +fi -# 安装服务 +# 种子数据、工具、脚本(始终更新) +[ -d "$SCRIPT_DIR/configs" ] && cp -r "$SCRIPT_DIR/configs"/* "$INSTALL_DIR/configs/" 2>/dev/null && echo " ✓ 种子数据已更新" +[ -d "$SCRIPT_DIR/tools" ] && cp -r "$SCRIPT_DIR/tools"/* "$INSTALL_DIR/tools/" 2>/dev/null && echo " ✓ 构建工具已更新" +[ -d "$SCRIPT_DIR/scripts" ] && cp -r "$SCRIPT_DIR/scripts"/* "$INSTALL_DIR/scripts/" 2>/dev/null && echo " ✓ 脚本已更新" +[ -d "$SCRIPT_DIR/deps" ] && cp -r "$SCRIPT_DIR/deps" "$INSTALL_DIR/" 2>/dev/null && echo " ✓ 依赖包已更新" + +# 安装/更新服务 cp "$SCRIPT_DIR/safesightd.service" /etc/systemd/system/ systemctl daemon-reload -systemctl enable --now safesightd + +if [ "$UPGRADE" = true ]; then + systemctl start safesightd +else + systemctl enable --now safesightd +fi echo "" -echo "========== 安装完成 ==========" -echo "服务状态:" -systemctl status safesightd --no-pager -l +echo "========== 完成 ==========" +systemctl status safesightd --no-pager -l | head -10 echo "" echo "打开 http://$(hostname -I | awk '{print $1}'):18080"