代码改变世界

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

  HQS_blog  阅读(503)  评论(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如图,可正常执行并退出

  

 

相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示