为shell命令设置超时

来源:互联网 发布:口红推荐知乎 编辑:程序博客网 时间:2024/05/16 05:17

最近写一个检查所有集群状态的脚本,在使用ssh在server上执行远程命令时,如果server一时网络不通,则ssh命令会等将近1分钟才会返回,这会延长脚本的执行。通过google,也在网上查到一些解决方案,比如设置timeout、TMOUT等,但timeout好像不管用,而TMOUT设置了之后,如果在设定的时间之内没有响应的话整个ssh连接都会被干掉,这明显不符合我的需求啊。

最后,我发现shell里有一个命令timeout可以实现当一个命令在规定时间内不返回就强制返回的功能。

timeout 10 ssh root@${api_node_ip} "ls"

0 0