代码改变世界

shell脚本中使用ssh链接服务器

2023-09-15 15:41  HQS_blog  阅读(424)  评论(0编辑  收藏  举报

1.建立从服务器A-》B的ssh免密登录

2.在shell脚本中使用ssh

3.遇到的问题:

  3.1 不会分配伪终端,因为stdin不是终端    Pseudo-terminal will not be allocated because stdin is not a terminal.  Activate the web console with: systemctl enable --now cockpit.socket

    ssh -tt 用户名@ip      --需要在ssh命令中增加"-tt",作用是那怕不是在终端连接,也会分配伪终端

  3.2 脚本如图,执行完ssh -tt root@ip后,并没有继续执行接下来的命令

  

  解决:需要使用 <<EOF 执行的命令  EOF,且结束之前先退出当前子shell

     Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。

      可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。

    修改的shell如图,可正常执行并退出