#!/bin/bash # VPS Hub 监控程序 - 卸载脚本 # 该脚本会移除systemd服务 # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 获取当前脚本所在目录的绝对路径 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # 定义服务名称 SERVICE_NAME="idc_monitor" SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service" echo "==========================================" echo " 核云IDC VPS监控程序 - 卸载向导" echo "==========================================" echo "" # 检查是否以root权限运行 if [ "$EUID" -ne 0 ]; then echo -e "${RED}错误: 请以root权限运行此脚本 (sudo ./uninstall.sh)${NC}" exit 1 fi # 检查服务是否存在 if [ ! -f "${SERVICE_FILE}" ]; then echo -e "${YELLOW}警告: 服务文件 ${SERVICE_FILE} 不存在${NC}" echo "可能服务未安装或已被卸载" exit 0 fi # 停止服务 echo "正在停止服务..." if systemctl is-active --quiet ${SERVICE_NAME}; then systemctl stop ${SERVICE_NAME} echo -e "${GREEN}✅${NC} 服务已停止" else echo -e "${YELLOW}⚠️${NC} 服务未运行,跳过停止步骤" fi # 禁用服务(取消开机自启) echo "正在禁用服务..." if systemctl is-enabled --quiet ${SERVICE_NAME} 2>/dev/null; then systemctl disable ${SERVICE_NAME} echo -e "${GREEN}✅${NC} 服务已禁用" else echo -e "${YELLOW}⚠️${NC} 服务未启用,跳过禁用步骤" fi # 重新加载systemd配置 echo "正在清理systemd配置..." systemctl daemon-reload systemctl reset-failed ${SERVICE_NAME} 2>/dev/null # 删除服务文件 echo "正在删除服务文件..." rm -f ${SERVICE_FILE} echo -e "${GREEN}✅${NC} 服务文件已删除: ${SERVICE_FILE}" # 询问是否清理日志 LOG_DIR="${SCRIPT_DIR}/logs" echo "" echo "==================================================" echo -e "${YELLOW}请选择要清理的内容:${NC}" echo " 1. 仅清理日志文件" echo " 2. 清理日志文件和配置文件" echo " 3. 不清理任何文件(保留所有数据)" echo -e -n "${YELLOW}请输入选项 1/2/3,直接回车默认为3: ${NC}" read CLEAN_CHOICE case "$CLEAN_CHOICE" in 1) if [ -d "${LOG_DIR}" ]; then rm -rf ${LOG_DIR} echo -e "${GREEN}✅${NC} 日志目录已清理: ${LOG_DIR}" else echo -e "${YELLOW}⚠️${NC} 日志目录不存在,跳过清理" fi echo -e "${YELLOW}⚠️${NC} 配置文件保留在: ${SCRIPT_DIR}/config.yml" ;; 2) # 清理日志 if [ -d "${LOG_DIR}" ]; then rm -rf ${LOG_DIR} echo -e "${GREEN}✅${NC} 日志目录已清理: ${LOG_DIR}" else echo -e "${YELLOW}⚠️${NC} 日志目录不存在,跳过清理" fi # 清理配置文件 CONFIG_FILE="${SCRIPT_DIR}/config.yml" if [ -f "${CONFIG_FILE}" ]; then rm -f ${CONFIG_FILE} echo -e "${GREEN}✅${NC} 配置文件已删除: ${CONFIG_FILE}" else echo -e "${YELLOW}⚠️${NC} 配置文件不存在,跳过清理" fi ;; *) echo -e "${YELLOW}⚠️${NC} 跳过文件清理" echo " 日志文件保留在: ${LOG_DIR}" echo " 配置文件保留在: ${SCRIPT_DIR}/config.yml" ;; esac echo "" echo "==========================================" echo -e "${GREEN}✅ ${SERVICE_NAME} 服务已成功卸载${NC}" echo "==========================================" echo "" echo "注意:" echo " - Python依赖包未被卸载,如需清理请手动执行: pip uninstall -r requirements.txt" echo " - 项目文件未被删除,如需删除请手动清理项目目录: ${SCRIPT_DIR}" echo "" echo "卸载完成!"