Наберите тест IP + сигнал тревоги порт Telnet н.д.

1.telnet 

[корень @ мастер-node156 mon_port] # кошка mycheck_port | -v задать расширенное ' ^ $ ' 
# ! / бен / ш
# Микропредприятий предупреждение конфигурации письмо
Предупреждение = Правда # Правда сконфигурирована для инициирования сигнала тревоги, другой не открыт
# Micro-канал корпоративного робота ID
userkey = " 5642127c-woab-shib-9da8-ac2f4adashabic003 " 
эхо ' ' > / TMP / problemip.txt
cur_datetime = `дата +% Y% м% d-% H:% M:% S`
HomeDir = `имя_директории $ 0 `
Функция check_port {
        pkill - 9 телнет
    Тайм - аут 2   SSH 127,0 . 0,1 телнет $ 1       > / TMP / a.txt
    myresult = `-i задать расширенное ' Побег ' /tmp/a.txt|wc - L`
         если [[$ myresult -eq 1 ]], а затем
            эхо " $ cur_datetime端口$ прослушивания порта, состояние хорошо ... " | Тройник -a $ HomeDir / port_status.log

        еще 
            эхо « $ cur_datetime Ошибка端口$ порт закрыт, статус не удалось ... » | Тройник -a $ HomeDir / port_status.log
             если [ " $ для Alert " = " Истинный " ], а затем
            Эхо $ 1 > / TMP / problemip.txt
            СЕПГ -i ' s # # - # ' / TMP / problemip.txt
            HostPort = `кот / TMP / problemip.txt`
            локон -s -X POST -H " 'Content-Type': 'приложение / JSON' " -d ' { "MsgType": "Текст", "Текст": { "содержание": «端口未启动\ г主机端口: ' $ HostPort '   \ г时间: ' $ cur_datetime ' », "mentioned_list": [ "Ванцинского", ""], "mentioned_mobile_list": [ "", ""]}} ' https: // qyapi.weixin. qq.com/cgi-bin/webhook/send?key=$userkey 
            фи
            сон 1
        быть
        }
для я в `кошки / Opt / mon_port / 8080 .txt`; делать а = `Эхо $ я | AWK -F [:] ' {печать $ 1" «$ 2} ' `; check_port " $ а " ; сделано

2.nc

[корень @ мастер-node156 mon_port] # кошка check_port | Grep -v ' ^ $ ' 
# ! / бен / ш
# Микропредприятий предупреждение конфигурации письмо
Предупреждение = Правда # Правда сконфигурирована для инициирования сигнала тревоги, другой не открыт
# Micro-канал корпоративного робота ID
userkey = " 5wo2127c-shib-458b-9da8-ac2fshabidc003 " в 
то время как getopts " : ч: р: " вариант
 сделать 
    дело  " $ вариант "  в
        час)
            хост = $ OPTARG ;;
        п)
            порт = $ OPTARG ;;
        * )
            эхо « Использование: арг [-h] [-p] » 
            эхо « -h означает хост » 
            эхо « -p порт означает » 
            выход 1
            ;;
    ESAC
сделано
если [! $ порт], а затем
    эхо « Пожалуйста , введите номер порта, например, 192.168.1.10 -p -h 0 80 $ » 
    эхо « не -h аргумент, проверка локального порта по умолчанию » 
    Exit . 1
быть
cur_datetime = `дата +% Y% м% d-% H:% M:% S`
HomeDir = `имя_директории $ 0 `
localIp = $ (/ SBIN / Ifconfig -a | Grep инет | Grep -v 127,0 . 0,1 | Grep -v inet6 | AWK ' {печать $ 2} ' | тр -d " ADDR: " | голова -n 1 )
 если [! $ хоста], а затем
    хост = $ localIp
быть
#res = `$ HomeDir / check_tcp -H $ хост - р $ port`
 #if [[ "$ Рез"= ~ "OK"]]; затем 
#nc -w 3 $ хост $ порт </ DEV / нуль > / DEV / нуль  2 > & 1 
пс -w 3 -z $ хост $ порт> / DEV / нуль  2 > & 1 , 
если [$? = 0 ]; тогда
    эхо " $ cur_datetime端口$ прослушивания порта, состояние хорошо ... " | Тройник -a $ HomeDir / port_status.log
    выход 0 
еще 
    эхо « $ cur_datetime Ошибка端口$ порт закрыт, статус не удалось ... » | Тройник -a $ HomeDir / port_status.log
     если [ " $ для Alert " = " Истинный " ], а затем
        локон -s -X POST -H " 'Content-Type': 'приложение / JSON' " -d ' { "MsgType": "Текст", "Текст": { "содержание": «端口未启动\ г端口: ' $ порт ' \ г服务器: ' $ хоста ' \ г时间: ' $ cur_datetime ' », "mentioned_list": [ "Ванцинского", ""], "mentioned_mobile_list": [ "", ""]}} ' HTTPS : // qyapi.weixin.qq.com/cgi-bin/webhook/send?key=$userkey 
    фи
    Выход 1 , 
как

рекомендация

отwww.cnblogs.com/hixiaowei/p/12171965.html
рекомендация