为shell命令设置超时

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

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章