登录到另一台服务器并运行命令 - 使用脚本 [重复]

Posted

技术标签:

【中文标题】登录到另一台服务器并运行命令 - 使用脚本 [重复]【英文标题】:Log in to another server and run commands - Using a script [duplicate] 【发布时间】:2019-12-09 03:49:39 【问题描述】:

我想运行一个脚本 a.sh,它将执行以下步骤 -

    运行几个命令 在同一服务器 - server01 中调用另一个 shell 脚本 b.sh b.sh 将登录到另一台服务器 - server02 并运行以下命令。

我能够正确执行到第 2 步。在第 3 步中,我可以访问另一台服务器,但它停在那里。它不运行以下步骤。

看看这两个脚本。

a.sh

cd ~/sample/home && python helloworld.py
#!/bin/bash
cd ~/sample/ && ./b.sh

b.sh

ssh username@server02.com
echo "In server02"

a.sh 和 b.sh 都在同一个服务器上,即 server01.com。在这里,我希望 a.sh 在 server01 中运行,然后 b.sh 在 server01 中运行。一旦 b.sh 运行,它应该 ssh 到 server02 并打印“In server02”。

我可以通过 ssh 连接到 server02。之后,它不会在 server02 中打印“In server02”。

有办法吗?

【问题讨论】:

【参考方案1】:

使用heredoc。

ssh username@server02.com << EOF
  echo "In server02"
EOF

【讨论】:

在How to Answer 中,请注意“回答正确提出的问题”部分,其中的要点是关于“之前已被多次询问和回答”的问题。

以上是关于登录到另一台服务器并运行命令 - 使用脚本 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集

通过shell脚本实现读取文件新增的每一行并追加到另一台服务器的文件末尾

本地shell脚本中ssh到远程服务器并执行命令

通过网络将数据从主机上的一个线程发送到另一台机器上运行的某种服务线程

使用 rpc、http 或 websockets,这对于从一台服务器到另一台服务器重复传输许多小块数据来说是最快的

(11)ssh免密登录配置