VPSHUB/app/uninstall.sh

121 lines
3.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 核云IDC服务商VPS自动监测重启程序 - 卸载脚本
# 该脚本会移除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 "卸载完成!"