2016-11-16 10 views
0

Мне нужно проверить мое соединение с spesific портом каждые 5 минут, в настоящее время я не могу использовать команду ping, поэтому мне нужна другая альтернатива сделайте это. Я хочу выполнить эту команду в сценарии оболочкиСценарий проверки соединения каждые 5 минут и запись результата в файл (без пинга) в LINUX

Может кто-нибудь помочь мне показать пример для этого случая?

+0

http://stackoverflow.com/questions/4922943/test-from-shell-script-if-remote-tcp-port-is-open –

+0

Работает ли netstat для вас? Может ли комбинация netstat с grep выполнять эту работу? Также проверьте netstat --help или man netstat для доступных опций. –

+0

@GeorgeVasiliou Я хочу протестировать его с сервера A на сервер B, поэтому я думаю, что netstat не будет работать, так как netstat проверяет только, был ли порт вставлен или нет. CMIIW –

ответ

0
port=80 
ip=8.8.8.8 
checkIntervalSecs=5 
timeoutSecs=1 
while true ; do 
    if $(nc -z -v -w$timeoutSecs $ip $port &>/dev/null); then 
     echo "Server is up!" 
    else 
     echo "Server is down!" 
    fi 
    sleep $checkIntervalSecs 
done 

Это бежит, пока вы его не убьете. Для объяснения команды nc она в основном взята из SO question @IporSircer suggested.

+0

Я не могу использовать команду «nc». –

+0

Не могли бы вы обновить свой вопрос? –