feat: install.sh 支持升级模式,自动识别已有安装,保留配置和数据
This commit is contained in:
parent
e411385718
commit
b73ccdefed
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user