分享一個自己寫的簡單指令碼。 檢測本機服務埠指令碼
阿新 • • 發佈:2021-06-25
#!/bin/bash ##服務名稱 SERVICE_NAME="nginx1 nginx2 ningx3 nginx4" ip=1.1.1.1 #本機ip #檢測服務是否正常 for service in $SERVICE_NAME do #echo ----------------------- 無視分割線內內容 ----------------------------- ##檢測服務是否存在 service_quantity=`docker ps | grep $service | wc -l` if [ $service_quantity -lt 1 ];then curl'https://oapi.dingtalk.com/robot/send?access_token=5e64853712e0e40b4ab069c70b71743d4347c55b3e2f9ab9891d082744db54b5' \ -H 'Content-Type: application/json' \ -d "{\"msgtype\": \"text\", \"text\": { \"content\": \"Details $ip $service 服務不存在 請檢查服務\" } }" break ##判斷服務是否正常 service_logs=`docker inspect --format '{{.State.Running}}' ${service}` if [ ${service_logs} != true ];then curl 'https://oapi.dingtalk.com/robot/send?access_token=5e64853712e0e40b4ab069c70b71743d4347c55b3e2f9ab9891d082744db54b5' \ -H 'Content-Type: application/json' \ -d "{\"msgtype\": \"text\", \"text\": { \"content\": \"Details $ip $service 服務沒有正常啟動 請檢查服務\" } }" break fi fi done #檢查埠 server_ports=(80 81 82 83) for server_port in ${server_ports[@]}; do while ((count<5));do nc -w 1 -z $ip $server_port > /dev/null 2>&1 if [[ $? -ne 0 ]];then curl 'https://oapi.dingtalk.com/robot/send?access_token=5e64853712e0e40b4ab069c70b71743d4347c55b3e2f9ab9891d082744db54b5' \ -H 'Content-Type: application/json' \ -d "{\"msgtype\": \"text\", \"text\": { \"content\": \"Details $ip:$server_port 埠異常 請檢查埠\" } }" break else echo > /dev/null 2>&1 break fi done done