linux - 通过ssh从目标服务器获取变量值到源服务器

标签 linux shell ssh redhat

这是我在 StackOverFlow 上的第一个问题。我正在尝试在源服务器上编写一个 shell 脚本,我需要从那里连接到另一台服务器以获取一些值并将其存储在变量中。然后我需要断开与目标服务器的连接并在脚本的其余部分使用该变量。我尝试使用的以下逻辑不会产生任何结果。

ssh <Destination server IP>
status=sudo systemctl status httpd | grep active

现在我期望 status 变量应该包含我可以在当前源服务器脚本中使用的目标服务器的 httpd 服务的状态,但值为空。 它还必须与目标服务器断开连接。不确定如何进行。

有人可以帮忙吗? 提前致谢。

最佳答案

您可以从客户端服务器执行:

ssh user@destination-server-ip 'bash -s' < your-command.sh > your-script.sh

当你的命令是这样的:

status=sudo systemctl status httpd | grep active
echo status

并且您的 your-script.sh 必须从标准输入读取状态。

例如,也许存在更好的解决方案。

关于linux - 通过ssh从目标服务器获取变量值到源服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47575280/

相关文章:

java - 如何在 String 中获取 jsch shell 命令输出

linux - cron 找不到命令 pyenv

c++ - 尽管通过了所有演示测试,SuiteSparse CHOLMOD 仍抛出 gpu_memorysize 错误

python - 无法以不同用户身份运行命令

shell - 从输出中 grep 特定变量并将值替换为另一个 linux

shell - 错误 : EACCES: permission denied, 访问 '/usr/lib/node_modules'

bash - 新 Bash session 的多个初始化文件

linux - 我必须编写一个自动化脚本

windows - 无法使用来自 jenkins 的 git 从 tomcat 安装连接到 bitbucket

ssh - 通过 SSH 隧道远程调试 : receiving "There was a problem sending x bytes on socket y: Broken pipe"