如何让 bash 脚本在运行 SSH 命令后等待?

如何让 bash 脚本在运行 SSH 命令后等待?

我目前正在编写一个 bash 脚本来帮助我更新一些服务器,因此我需要连接到那里,运行,yum update -y然后有时输入其他命令。我目前已设置了以下内容:

for servers in $devservers
    do
        ssh $servers 'yum update -y'
    done

但问题是,当我运行这个程序时,它不允许我编写一些额外的命令以备不时之需 - 比如当我需要重新启动某些服务时。有没有办法让脚本等我退出服务器?

答案1

如果在结束后需要 shell 访问yum,则需要运行bash或您首选的 shell。此外,使用-t将帮助您正常工作(分配远程 TTY)。

for servers in $devservers
    do
        ssh -t $servers 'yum update -y;bash'
    done

答案2

你可以通过请求 tty 来实现这一点:

for servers in $devservers
     do
           ssh -tt $servers 'stty raw -echo; sudo yum update -y'
     done

相关内容