diff --git a/03 b/03 index 1c8223a..499a420 100644 --- a/03 +++ b/03 @@ -1,63 +1,54 @@ #!/bin/bash # ================= 配置区域 ================= -# 新安装时的默认路径 -NEW_INSTALL_DIR="/data" +# 回归官方默认安装路径 +DATA_DIR="/var/lib/rustdesk-server" # =========================================== -# --- 功能 1: 智能检测是否已安装 --- +# --- 功能: 检测安装并询问 --- echo "正在检查系统状态..." -# 检查 systemd 中是否有 hbbs 服务 if systemctl list-unit-files | grep -q "rustdesk-hbbs.service"; then echo "------------------------------------------------" - echo "⚠️ 检测到 RustDesk Server (hbbs) 已经安装!" - echo "无需重新安装,正在为你读取现有的密钥配置..." - - # 尝试从 systemd 配置中动态获取它当前的工作目录 - # 这样无论你以前装在 /data 还是 /root 都能找到 - CURRENT_WORK_DIR=$(systemctl show -p WorkingDirectory --value rustdesk-hbbs) - - # 如果系统未能返回路径(罕见情况),尝试默认路径 - if [ -z "$CURRENT_WORK_DIR" ]; then - CURRENT_WORK_DIR="$NEW_INSTALL_DIR" - fi - - echo "📂 发现数据目录: $CURRENT_WORK_DIR" - - KEY_FILE="${CURRENT_WORK_DIR}/id_ed25519.pub" - - echo "" - if [ -f "$KEY_FILE" ]; then - echo "🔑 你的现有 Key (Public Key) 为:" - echo -e "\033[32m$(cat "$KEY_FILE")\033[0m" - else - echo "❌ 未找到密钥文件。" - echo "尝试在目录中查找: $CURRENT_WORK_DIR" - echo "建议检查服务是否启动成功: systemctl status rustdesk-hbbs" - fi - + echo "⚠️ 检测到系统已安装 RustDesk Server!" echo "------------------------------------------------" - echo "脚本已退出,未进行任何修改。" - exit 0 + read -p "是否卸载当前版本并重新安装?(输入 y 确认,输入 n 退出): " choice + case "$choice" in + y|Y ) + echo ">>> 正在停止服务并卸载..." + systemctl stop rustdesk-hbbs rustdesk-hbbr + systemctl disable rustdesk-hbbs rustdesk-hbbr + # 使用 purge 彻底清除旧配置,确保干净重装 + dpkg -P rustdesk-server-hbbs rustdesk-server-hbbr + apt-get purge -y rustdesk-server-hbbs rustdesk-server-hbbr + # 询问是否删除数据(Key) + read -p "是否连同旧的 Key 和数据文件一起删除?(y/n) [推荐 n 保留]: " del_data + if [[ "$del_data" == "y" || "$del_data" == "Y" ]]; then + rm -rf "$DATA_DIR" + echo ">>> 旧数据已清除。" + else + echo ">>> 旧数据已保留。" + fi + echo ">>> 卸载完成,准备开始重新安装..." + ;; + * ) + echo ">>> 已取消操作,脚本退出。" + exit 0 + ;; + esac fi -# --- 下面是正常的安装流程 (仅在未安装时执行) --- - -echo "未检测到现有服务,开始全新安装..." +# --- 开始安装流程 --- # 1. 基础环境修复 echo "正在修复基础环境..." apt-get update apt-get install -y curl wget lsof psmisc -# 2. 准备目录 -DATA_DIR="$NEW_INSTALL_DIR" +# 2. 准备目录 (使用官方标准路径) if [ ! -d "$DATA_DIR" ]; then - echo "目录 $DATA_DIR 不存在,正在创建..." + echo "正在创建标准数据目录: $DATA_DIR" mkdir -p "$DATA_DIR" -else - echo "目录已存在: $DATA_DIR" fi # 3. 下载安装包 @@ -73,15 +64,16 @@ if [ ! -s hbbs.deb ]; then exit 1 fi -# 4. 安装并清理 +# 4. 安装 echo "正在安装软件包..." dpkg -i hbbs.deb hbbr.deb apt-get install -f -y rm -f hbbs.deb hbbr.deb -# 5. 配置 Systemd 服务 +# 5. 配置 Systemd 服务 (写入 /var/lib/rustdesk-server 路径) HOST_IP=$(curl -s4 ifconfig.me) +echo "正在写入服务配置..." cat > /etc/systemd/system/rustdesk-hbbs.service <