本地服务器:让我们说local1远程服务器:让我们说remote1
我在local1服务器上有以下shell脚本;
#!/bin/sh
comm1=`arping -c 3 -s 192.168.xxx.xx 192.168.yyy.yy | grep "reply from 192.168.yyy.yy" | awk '{print $2,$3,$4}' | tail -1 | awk '{print $3}'`
comm2="192.168.yyy.yy"
if [[ "$comm1" == *"$comm2"* ]]
then
echo "IP is up and running fine"
else
echo "IP is not up and running"
fi
如果我在本地服务器上运行上面的脚本,我得到了所需的输出,即“IP已启动且运行正常”。
但是,如果我将相同的脚本复制到remote1
服务器并尝试从remote1
服务器执行local1
服务器,它正在执行脚本,但提供以下输出;
bind: Cannot assign requested address
IP is not up and running
所以,remote1
服务器能够在local1
服务器上执行脚本,但它正在跳过真正的错误,如上所述。
仅供参考,我在remote1服务器上运行以下命令;
ssh [email protected] /root/script.sh
我知道哪里出错或者如何克服这个错误?
对于远程服务器,您必须切换IP
arping -c 3 -s 192.168.yyy.yy 192.168.xxx.xx
服务器IP以yyy.yy结尾,但您尝试使用xxx.xx作为远程操作系统拒绝的命令(-s)的源IP。