bash - 在循环中的 bash shell 脚本中执行 ssh 命令

标签 bash ssh

<分区>

我正在尝试在 bash shell 脚本中执行 ssh 命令,该脚本应执行以下操作: 1)ssh到主机 2)执行命令 3)命令的打印值 4)重复步骤1 -3 5) 退出 bash shell 脚本

我已经设置了无密码进入远程主机,将主机 key 添加到远程主机

我想测试远程主机上运行的httpd进程的各种状态 在文本文件 httpd_process.txt 中,我有:

/etc/init.d/httpd状态(停止、启动、重启)

我在脚本中执行以下操作:

while read LINE
do
    echo "Httpd Request: $LINE"
    status=`$LINE`
    echo "Status: $status"
    sleep 5 # sleep so that next 
done < /path_name/httpd_process.txt

exit 0

我假设每次循环都会从输入文本文件中读取另一个输入字符串,并向远程主机发出请求。 但是,我的经验是,在第一个请求之后脚本终止。 我是否正确地假设发送第一个请求时它会创建一个子进程,一旦该进程完成我的脚本就会完成并且不执行循环中的下一轮?

最佳答案

ssh 正在使用标准输入。将其传递给 -n 以防止出现这种情况。

关于bash - 在循环中的 bash shell 脚本中执行 ssh 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351022/

相关文章:

arrays - 检查 bash 数组值是否都相同

bash - 使用 set -e 在 bash 中等待多个进程

powershell - 在 Start-Process 中添加一个命令以向 Plink 提供 "y"输入

SSH 无法将特定命令传递给远程路由器

python - Python中通过另一个SSH跳转服务器从SSH/Telnet获取命令结果

linux - 需要删除文件每三行的最后一列

linux - SuSE - 如何在重新启动后重新启动由用户通过键盘输入启动的 Linux 后台进程

regex - 如何从url中提取域名?

java - 有没有比 JSch 更好的 SSH2 Java 实现?

git - 使用 ssh 进行远程 Git pull 会导致权限被拒绝(公钥)?