記一次中止線上再也不跑的服務

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

  • hosts: go_rpc
    name: get server info
    gather_facts: false
    run_once: true
    tasks:
    • name: scp shell file
      copy: src=/home/get_port_package.sh dest=/home/wwwroot/lnmp02/vhost/ mode=755
    • name: add cron mission kill_tcpdump
      cron: name="kill_tcpdump" minute="*/1" job="ps -ef |grep tcpdump|grep -v grep |awk '{print $2}'|xargs kill"
    • name: add cron mission tcpdump
      cron: name="tcpdump" minute=*/10 job=/home/wwwroot/lnmp02/vhost/get_port_package.sh

/1 ps -ef |grep tcpdump|grep -v grep |awk '{print $2}'|xargs kill
/10 /home/wwwroot/lnmp02/vhost/get_port_package.shsql

結果:跑了3天之後,生成了大量的文件,但都是空的,沒有抓到一個包至此證實真的是沒有人在訪問這幾個端口,和領導對了一下,給開發和相關人員發了郵件以後,就中止了
記一次中止線上再也不跑的服務shell

相關文章
相關標籤/搜索