我正在使用一个脚本从远程服务器获取文件列表,每个远程服务器都有自己的密码,IP,用户和路径。这就是为什么我使用sshpass动态传递password参数。这是我的脚本,用于暂时获取文件列表:
user='username'
pass='password' ->>> LOCATION_OF_REMOTE='hostpath'
ip='hostip'
path='hostpath'
data=`/usr/bin/sshpass -p $pass sftp -oBatchMode=no -b - -oStrictHostKeyChecking=no $user@$ip <<_EOF_
cd $path
ls
_EOF_`
echo $data >> list_of_files.txt
运行此脚本时出现错误:
错误:sshpass:无法运行命令:没有这样的文件或目录
而完全相同的命令在命令行脚本外部运行正常。在脚本中时,它只是不起作用。我试图以root身份和非root身份同时使用它。我不知道为什么在脚本中它不起作用。
答案 0 :(得分:0)
我有一个非常愚蠢的错误。通过定义一个变量“ PATH”,shell正在考虑它的环境路径,这就是为什么我遇到这个愚蠢的错误。