剛接手的服務器,什麼移交都沒有,而後發現上邊跑了不少無用的服務在佔用系統資源,問開發,查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