在 ssh 中传输变量并得到回复

Transfer variables in ssh an get answer back

我想在 bash 中编写脚本以连接到服务器,在另一台服务器上执行 ping 命令,从 ping 命令获取 ip,并将该信息发送回 运行 脚本的电脑,以及最后连接到之前被 ping 过的服务器。

我的脚本:

#!/bin/bash
echo "Script to connect to server"
#ip_p used to connect to first server, on that server i want to use ping command'
ip_p=XYz.XYZ.XYZ.XYZ
user='username to the servers' 

#ip_d - in that variable i want to save ip of the pinged server

ssh -t $user@$ip_p ip_d="ip_d=ping -c1 .domain | sed -nE 's/^PING[^(]+\(([^)]+)\).*//p' && exit "
echo "start"
echo $ip_d
echo "stop"
ssh -t $user@$ip_d

我希望如何工作: 我要检查的域名 test.nyslay.pl

  1. 连接到脚本中定义的 ip 和用户名的服务器
  2. ping 服务器(部分“.nyslay.pl”,始终相同,但 "test" 我想从脚本的第一个参数读取 运行
  3. 从上一点获取域的 ip
  4. t运行sfer ip from point: 2 to local machine, on which script is 运行
  5. 连接到我们从点获得的 ip 的服务器:2

使用命令替换:

ip_d=$(ssh -t $user@$ip_p "ping -c1 .domain | sed -nE 's/^PING[^(]+\(([^)]+)\).*//p'")

ping(通过sed)的输出通过ssh到达本地机器,其输出被捕获在局部变量ip_d.[=15中=]