刚接手的服务器,什么移交都没有,而后发现上边跑了不少无用的服务在占用系统资源,问开发,查git,查计划任务,查现有wiki都没有发现这个服务到底可不能够停,怎么办,怎么去确认它已经没有人在用呢?我来举个例子php
公司的web服务器组上边跑php,nginx,mysql,go,go服务是明确在跑的服务,那么剩下的这些到底有没有再用呢?
1)查看nginx访问日志为空,php访问日志为空,近半年日志都没有更新过了
2)查看端口链接,没有1个链接进来
3)查看nginx配置的域名,解析都不在这mysql
讲道理,这个时候应该确认这个服务没有在用了,可是运维无小事,肯定这些端口若是连数据包都没有进来,那么真的是没有在用了
写了两个脚本配合使用
脚本1:
用来抓包
[root@go_web003 home]# cat /home/wwwroot/lnmp02/vhost/get_portpackage.sh
#!/bin/bash
port=(80 8888 9999 86 87 89)
ip=`ifconfig eth0|grep 'inet addr'|awk -F: '{print $2}'| awk '{print $1}'<br/>time=
date +%F%R`
getpack(){
tcpdump -i eth0 dst host $ip and dst port $1 >> /home/${2}${3}.txt
}nginx
traverse_port(){
for p in ${port[@]}
do
get_pack $p $p $time
done
}git
traverse_port
脚本2:
计划任务,用来中止tcpdump,由于上边指定了抓10个包,不停的抓包也会占用系统资源,若是不中止的话,会一直卡在那,因此计划任务用来中止抓包,使用ansible来添加
[root@jenkins zhangdalu]# cat cron_tcpdump.yml web
/1 ps -ef |grep tcpdump|grep -v grep |awk '{print $2}'|xargs kill
/10 /home/wwwroot/lnmp02/vhost/get_port_package.shsql
结果:跑了3天之后,生成了大量的文件,但都是空的,没有抓到一个包至此证实真的是没有人在访问这几个端口,和领导对了一下,给开发和相关人员发了邮件以后,就中止了shell