如果我在远程 REHL 服务器上直接(通过 ssh 终端)运行此命令:w -uh | awk -vhostname="$(hostname)" '{print "On "hostname ,$1,"is connected with IP: "$3}
'
我得到这样的输出:
在 remote.server1.address.com accountname 与 IP 连接:8.8.8.8
但是,如果我通过脚本中的 SSH 命令远程运行此命令(以检查多个服务器):ssh [email protected] w -uh | awk -vhostname="$(hostname)" '{print "On "hostname ,$1,"is connected with IP: "$3}
'
命令的结果给出本地机器主机名而不是远程服务器:
在 local.machine.address.com accountname 与 IP 连接:8.8.8.8
在 local.machine.address.com accountname 与 IP 连接:0.0.0.0
在 local.machine.address.com accountname 与 IP 连接:255.255.255.255*
我正在寻找如下结果。
在 remote.server1.address.com accountname 与 IP 连接:8.8.8.8
在 remote.server2.address.com accountname 与 IP 连接:0.0.0.0
在 remote.server3.address.com accountname 与 IP 连接:255.255.255.255*
这是因为该命令hostname
正在您的本地计算机上运行。您需要在引号中传递整个命令,例如:
ssh [email protected] "w -uh | awk -v hostname=\$(hostname) '{print \"On \"hostname ,\$1,\"is connected with IP: \"\$3}'"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句