为shell命令设置超时

3 篇文章 0 订阅

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

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

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在AutoJS中,可以使用`shell()`函数来执行shell命令。该函数的语法如下: ``` shell(cmd, root) ``` 其中,`cmd`是要执行的shell命令,`root`可选,如果设置为true,则以root权限执行命令。 示例1:执行简单的shell命令 ``` shell("ls"); ``` 示例2:执行带参数的shell命令 ``` shell("pm list packages -f com.tencent.mm"); ``` 示例3:以root权限执行命令 ``` shell("reboot", true); ``` 注意:在执行shell命令时,需要注意权限问题。某些命令可能需要root权限才能执行,此时需要在设备上先获取root权限。另外,某些命令可能会导致设备出现异常,需要谨慎使用。 ### 回答2: Autojs是一款用于Android设备的JavaScript自动化工具,其中包含了一个强大的shell命令功能,可以通过在脚本中调用shell命令来实现更复杂的操作。 Autojs的shell命令可以用于执行Android系统支持的所有shell命令。例如,我们可以使用shell命令来执行一些常见的操作,比如安装应用程序、卸载应用程序、运行应用程序、发送广播等。 另外,我们还可以使用shell命令来获取设备的一些基本信息,比如Android版本、设备名称、屏幕分辨率等。这些信息对于编自动化脚本非常有用,可以根据不同的设备情况来调整脚本的逻辑。 除了执行单个的shell命令之外,Autojs还提供了一些方法来执行一组shell命令,比如使用shell方法执行脚本文件、使用su方法执行需要root权限的命令等。 总结来说,Autojs的shell命令功能提供了一种强大的方式来与Android系统进行交互,可以通过执行shell命令来实现更复杂、更灵活的自动化操作。这使得Autojs成为一款非常实用的自动化工具,可以帮助我们简化Android设备上的一些操作,并提高工作效率。 ### 回答3: 在Auto.js中,通过Shell命令可以执行一些与系统交互的操作。Auto.js中的Shell类提供了以下几个方法来执行Shell命令: 1. Shell.read(cmd, timeout):执行指定的Shell命令,并返回命令执行结果。cmd是要执行的命令字符串,timeout超时时间,单位是毫秒。该方法会返回一个Shell.Result对象,可以通过getResult()方法获取命令执行结果的输出内容。 2. Shell.write(cmd):执行Shell命令,无需返回结果。cmd是要执行的命令字符串。这个方法一般用于执行一些不需要获取结果的命令。 3. Shell.exec(cmd, timeout):执行指定的Shell命令,并返回命令执行结果。cmd是要执行的命令字符串,timeout超时时间,单位是毫秒。该方法会返回一个对象,包含命令执行结果的输出内容、错误信息以及执行命令的状态码。 使用Shell命令可以实现一些常见的操作,比如运行其他应用、安装/卸载应用、发送广播、模拟按键等。通过执行Shell命令,可以与系统进行交互,实现更多自动化的功能。 需要注意的是,使用Shell命令需要具有Root权限或者在Auto.js的沙盒模式中运行时,需要App的Shell权限。同时,执行一些危险的Shell命令需要谨慎操作,避免对系统产生不可逆的影响。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值