【发布时间】:2020-04-03 22:12:19
【问题描述】:
我正在编写一个脚本来从远程服务器获取文件列表,每个远程服务器都有自己的密码、IP 和用户以及路径。这就是我使用 sshpass 动态传递密码参数的原因。这是我暂时获取文件列表的脚本:
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 身份运行它,两者都使用。我不知道为什么它在脚本中不起作用。
【问题讨论】:
-
可能缺少环境中的某些内容,例如从您的用户配置文件加载的路径。见stackoverflow.com/questions/14612444/… 和linuxfromscratch.org/blfs/view/6.3/postlfs/profile.html
-
@BurnsBA 不是很有帮助