121 lines
3.7 KiB
Bash
121 lines
3.7 KiB
Bash
#!/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 "卸载完成!" |