首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在发送远程命令之前,需要在SSH上运行远程命令并暂停

在发送远程命令之前,需要在SSH上运行远程命令并暂停
EN

Unix & Linux用户
提问于 2021-01-21 14:05:02
回答 1查看 284关注 0票数 0

我的任务是自动化要在远程系统上运行的命令。到目前为止,我已经制定了大多数ssh命令语法,但问题是,当我将远程命令添加到末尾时,它将进行连接,然后在不运行远程命令的情况下冻结。我怀疑这是因为在登录完全完成之前正在运行该命令。远程系统不是普通的Linux系统。它是一个Watchguard防火墙,所以它是一种专有的操作系统,这使得事情变得更加困难。在输入命令之前,是否有一种方法可以使脚本停顿5或10秒?我的老板提到了他们曾经使用的一个应用程序,它将SSHing进程自动化到系统中并运行命令,但是他不记得它是什么,所以如果有人知道一个应用程序可以在Linux中这样做,那也是可行的。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-01-21 15:14:11

使用以下expect脚本(您可能需要首先安装期望 ):

代码语言:javascript
复制
#!/usr/bin/expect
spawn ssh -l myuser 10.0.0.1
expect "assword:"
send "mypassword\r"
expect "#"
sleep 5
send "command\r"
expect "#"
send "exit\r"

此脚本运行命令ssh -l myuser 10.0.0.1并等待字符串assword:在ssh会话中显示,然后键入以\r结尾的密码,即Enter键(我故意从" password :“提示符中省略了"p”,以适应大写和小写版本)。然后等待直到OS提示符出现(如果OS提示符不是#,您需要适当地更改它),再等待5秒并键入命令,然后输入Enter。再次等待直到提示符出现。命令已经完成),然后键入exit,然后输入Enter结束会话并断开连接。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/630242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档