59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
INSTALL_DIR="/opt/lan-manager"
|
||
SERVICE_NAME="lan-manager"
|
||
USER_NAME="lanmgr"
|
||
|
||
echo "=== LAN Manager 卸载脚本 ==="
|
||
|
||
if [ "$EUID" -ne 0 ]; then
|
||
echo "请使用 root 权限运行:sudo bash uninstall.sh"
|
||
exit 1
|
||
fi
|
||
|
||
# 1. 停止并禁用服务
|
||
if systemctl list-units --type=service --all | grep -q "$SERVICE_NAME"; then
|
||
echo "[1/5] 停止并禁用 systemd 服务 ..."
|
||
systemctl stop "$SERVICE_NAME" 2>/dev/null || true
|
||
systemctl disable "$SERVICE_NAME" 2>/dev/null || true
|
||
else
|
||
echo "[1/5] 服务不存在,跳过"
|
||
fi
|
||
|
||
# 2. 删除 systemd 服务文件
|
||
if [ -f "/etc/systemd/system/$SERVICE_NAME.service" ]; then
|
||
echo "[2/5] 删除 systemd 服务文件 ..."
|
||
rm -f "/etc/systemd/system/$SERVICE_NAME.service"
|
||
systemctl daemon-reload
|
||
else
|
||
echo "[2/5] systemd 服务文件不存在,跳过"
|
||
fi
|
||
|
||
# 3. 删除程序和数据目录
|
||
if [ -d "$INSTALL_DIR" ]; then
|
||
echo "[3/5] 删除程序目录 $INSTALL_DIR ..."
|
||
rm -rf "$INSTALL_DIR"
|
||
else
|
||
echo "[3/5] 程序目录不存在,跳过"
|
||
fi
|
||
|
||
# 4. 删除用户和组
|
||
if id "$USER_NAME" &>/dev/null; then
|
||
echo "[4/5] 删除运行用户 $USER_NAME ..."
|
||
userdel "$USER_NAME" 2>/dev/null || true
|
||
else
|
||
echo "[4/5] 用户 $USER_NAME 不存在,跳过"
|
||
fi
|
||
|
||
# 5. 清理防火墙规则(可选)
|
||
echo "[5/5] 检查防火墙规则 ..."
|
||
if command -v ufw &>/dev/null && ufw status | grep -q "8080/tcp"; then
|
||
echo " 发现 ufw 规则 8080/tcp,建议手动删除:ufw delete allow 8080/tcp"
|
||
fi
|
||
|
||
echo ""
|
||
echo "=== 卸载完成 ==="
|
||
echo "如需保留数据库备份,请确认已备份 /opt/lan-manager/data/lan-manager.db"
|
||
echo ""
|