HCRM博客

CentOS7环境Tomcat9卸载与残留清理全攻略

CentOS7彻底卸载Tomcat9并清理残留:一步不漏的实操笔记

CentOS7环境Tomcat9卸载与残留清理全攻略-图1

CentOS7彻底卸载Tomcat9并清理残留

CentOS7环境Tomcat9卸载与残留清理全攻略-图2

装过Tomcat9的CentOS7机器,一旦决定不用,就别让它留下半点影子。残留文件、自启脚本、环境变量、systemd配置,哪怕只漏一处,下次再装别的版本就会踩坑。下面这套流程,我亲自在多台生产机验证过,照着敲,保证干干净净。

先搞清楚自己到底装了啥

很多人一上来就yum remove,结果只删掉一半。先执行rpm -qa | grep tomcat,如果返回空,再执行find / -iname 'tomcat' 2>/dev/null | head,看看是二进制包、源码包还是别人编译的tar.gz。三种装法,三种删法,别混。

二进制rpm包卸载

如果之前用yum装过,直接yum remove tomcat*会把主程序带走,但/var/lib/tomcat/etc/tomcat这两个目录还会赖着。手动再执行:

rm -rf /var/lib/tomcat /etc/tomcat /usr/share/tomcat

CentOS7环境Tomcat9卸载与残留清理全攻略-图3

接着rpm -e --nodeps tomcat*,确保rpm数据库里不再挂名。

源码tar.gz包卸载

当时解压到/opt/下,目录名叫apache-tomcat-9.0.xx,别只删目录。先停服务:

/opt/apache-tomcat-9.0.xx/bin/shutdown.sh

再删目录:

rm -rf /opt/apache-tomcat-9.0.xx

如果以前建过软链,ls -l /usr/local/tomcat看看指向哪,一并删。

systemd自启脚本清理

Tomcat9常被做成tomcat.service,路径在/etc/systemd/system/tomcat.service。先停服务:

systemctl stop tomcat

禁用开机启动:

systemctl disable tomcat

再删文件:

rm -f /etc/systemd/system/tomcat.service

重载daemon:

systemctl daemon-reload

环境变量别漏

打开/etc/profile、/etc/bashrc、~/.bashrc,把下面几行全注释或删掉:

CATALINA_HOME=/opt/apache-tomcat-9.0.xx

export CATALINA_HOME

改完执行source /etc/profile让当前会话生效。

用户和组顺手清

如果当初单独建了tomcat用户,执行:

userdel -r tomcat

加-r才能把家目录一起端掉,避免/home/tomcat留下日志或war包。

日志与缓存扫尾

Tomcat爱在三个地方写日志:/var/log/tomcat/opt/apache-tomcat-9.0.xx/logs/tmp。统一执行:

rm -rf /var/log/tomcat /opt/apache-tomcat-9.0.xx/logs /tmp/tomcat.*

systemd的journal也可能有记录,再执行:

journalctl --vacuum-time=1s --unit=tomcat

端口占用复查

默认8080、8005、8009,执行:

ss -tulnp | grep -E '8080|8005|8009'

如果还有进程,ps -ef | grep java找到PID,kill -9 PID强杀。

开机自启彩蛋

有人把tomcat写进/etc/rc.local,别忘了检查:

grep -i tomcat /etc/rc.local

有就注释掉,再执行chmod +x /etc/rc.d/rc.local确保文件可执行。

一键复查脚本

把下面内容保存成checktomcatleftover.sh:

#!/bin/bash

for dir in /etc/tomcat /var/lib/tomcat /usr/share/tomcat /opt/apache-tomcat* /usr/local/tomcat /home/tomcat /var/log/tomcat; do

[ -e "$dir" ] && echo "残留: $dir"

done

for port in 8080 8005 8009; do

ss -tulnp | grep -q ":$port " && echo "端口仍被占用: $port"

done

systemctl list-unit-files | grep -q tomcat && echo "systemd单元未清理"

grep -s CATALINA_HOME /etc/profile /etc/bashrc ~/.bashrc && echo "环境变量未清理"

跑完没输出,才算真正卸干净。

常见翻车点提醒

1. 只删目录不删用户,导致/home/tomcat里还有war包,重装时报端口冲突。

2. systemd单元文件没禁用,重启后java进程又冒出来,以为见鬼。

3. 环境变量留在/etc/profile.d/自定义脚本里,source后又把旧路径带回来。

4. 日志目录被logrotate管理,删了文件不删配置,/var/log/messages疯狂报错。

重装前的最后确认

执行which java,确认JDK还在;再执行java -version,版本正确就能直接上新版本Tomcat,不会和旧配置搅在一起。至此,CentOS7里再也找不到Tomcat9的任何痕迹,系统日志干净,端口空闲,磁盘空间也回来了。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41985.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~