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如图,可正常执行并退出
标签:shell,EOF,tt,ssh,服务器,终端 From: https://www.cnblogs.com/hqsbrx/p/17704878.html