一些命令无法通过ssh(shell)在远程服务器上运行

时间:2013-11-14 16:58:34

标签: linux bash shell ssh

我必须在远程服务器上运行一些用户定义的命令。所以我做了以下几点。它适用于许多命令,例如crontab -llsdate +%s等...但是,它不适用于ip addr

当我实际ssh INSIDE那些服务器ip addr工作正常。但是当我使用ssh执行它时它不会。

这是我执行它的方式。

$ sshpass -p myPassword ssh -q root@127.0.0.1 'ip addr' > $PWD/tmp
$ cat $PWD/tmp

同样,这适用于我迄今为止尝试过的除ip addr之外的任何命令。 对于ip addr,它提供以下输出

bash: ip: command not found

所以我想知道为什么以及我做的有什么不对......

另外,请不要建议使用rsync或任何其他非默认的linux命令,因为我工作的环境没有它们,也没有安装权限。

提前谢谢

1 个答案:

答案 0 :(得分:3)

这是因为非交互式ssh会话不会提供您的登录配置文件,其中包括设置您的PATH变量。

默认路径不包含/sbin,这是ip命令的常用位置。