【发布时间】:2013-06-17 17:20:11
【问题描述】:
我正在使用这个名为 pssh 的工具来一起 ssh 到多个主机
使用它的语法是:
pssh [OPTIONS] command [...]
例如:
pssh -h hosts.txt uptime
这里的 hosts.txt 是包含我所有主机的 IP 地址的文件。 上面提到的命令工作得很好。即使我将 uptime 替换为 ls ,它也可以正常工作并向我显示相应机器上所有文件的正确内容。
问题是,如果我用 echo $PATH 替换该命令,那么它会显示我的路径
如果我使用这个命令:
pssh -h ips.txt which java
然后对于所有主机,它都会向我显示此错误:
which: no java in (/usr/local/bin:/bin:/usr/bin)
如果我使用普通的 ssh 命令手动 ssh 到其中一个主机 ()
然后我执行 which 命令或查看 $PATH 变量,然后看到这个:
-bash-3.2$ echo $PATH
/home/xx/bin64:/home/xx/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin
-bash-3.2$ which java
/home/xx/bin/java
-bash-3.2$
所以这表明至少有一台机器安装了 java 并且配置了正确的路径。那么有人能告诉我为什么我不能让这个命令适用于所有主机吗?
【问题讨论】:
标签: unix ssh path remote-access