我必须在远程服务器上运行一些用户定义的命令。所以我做了以下几点。它适用于许多命令,例如crontab -l
,ls
,date +%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命令,因为我工作的环境没有它们,也没有安装权限。
提前谢谢
答案 0 :(得分:3)
这是因为非交互式ssh会话不会提供您的登录配置文件,其中包括设置您的PATH
变量。
默认路径不包含/sbin
,这是ip
命令的常用位置。