记一次停止线上不再跑的服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次停止线上不再跑的服务相关的知识,希望对你有一定的参考价值。
刚接手的服务器,什么移交都没有,然后发现上边跑了很多无用的服务在占用系统资源,问开发,查git,查计划任务,查现有wiki都没有发现这个服务到底可不可以停,怎么办,怎么去确认它已经没有人在用呢?我来举个例子
公司的web服务器组上边跑php,nginx,mysql,go,go服务是明确在跑的服务,那么剩下的这些到底有没有再用呢?
1)查看nginx访问日志为空,php访问日志为空,近半年日志都没有更新过了
2)查看端口连接,没有1个连接进来
3)查看nginx配置的域名,解析都不在这
讲道理,这个时候应该确认这个服务没有在用了,但是运维无小事,确定这些端口如果连数据包都没有进来,那么真的是没有在用了
写了两个脚本配合使用
脚本1:
用来抓包
[[email protected]_web003 home]# cat /home/wwwroot/lnmp02/vhost/get_portpackage.sh
#!/bin/bash
port=(80 8888 9999 86 87)
time=`date +%F%R`
getpack(){
tcpdump -i eth0 dst host 1.1.1.1 and dst port $1 >> /home/${2}${3}.txt
}
traverse_port(){
for p in ${port[@]}
do
get_pack $p $p $time
done
}
traverse_port
脚本2:
计划任务,用来停止tcpdump,因为上边指定了抓10个包,不停的抓包也会占用系统资源,如果不停止的话,会一直卡在那,所以计划任务用来停止抓包
/1 ps -ef |grep tcpdump|grep -v grep |awk ‘{print $2}‘|xargs kill
/10 /home/wwwroot/lnmp02/vhost/get_port_package.sh
结果:跑了3天以后,生成了大量的文件,但都是空的,没有抓到一个包至此证明真的是没有人在访问这几个端口,和领导对了一下,给开发和相关人员发了邮件之后,就停止了
以上是关于记一次停止线上不再跑的服务的主要内容,如果未能解决你的问题,请参考以下文章