2017-02-20 190 views
0

使用curl telnet调用,从指定主机运行脚本的各种主机自动执行telnet连接。以bash脚本终止Curl Telnet会话

但是,如果我们知道telnet一旦我们获得任何主机的连接状态,我们必须通过转义字符来终止telnet会话,但在bash脚本中,我需要在连接/拒绝响应后尽快终止会话从目标端点或运行telnet会话几秒钟后。

PFB通过Curl调用来检查Telnet连接的脚本,所以我需要在curl中有一个,我们可以在curl终止telnet会话,只要我们得到响应或在几毫秒/秒内终止会话。

代码:

#!/bin/bash 
    HOSTS='LPDOSPUT00100 LPDOSPUT00101' 
    for S in ${HOSTS} 
     do 
     echo "Checking Connectivity From Host : ${S}" 
     echo "" 
     ssh -q [email protected]${S} "curl -v telnet://${TargetEndPoint}:${Port}" 
    done 

回答

0

你可以在timeout命令来运行它做了一定的时间后终止。

ssh -q [email protected]"$S" "timeout 5s curl -v telnet://${TargetEndPoint}:${Port}" 

如果它自己还没有退出,它会在5秒后终止它。

也许curl不适合这份工作。你有没有考虑用nc代替?

ssh -q [email protected]"$S" "nc -z ${TargetEndPoint} $Port" 

可能会做你想要什么。