我有一个Shell脚本,可以从远程服务器下载文件。虽然我提供用户名和密码,但仍要求在命令提示符下传递。
我尝试对用户名和密码进行硬编码,但仍然要求在运行时输入密码
for host in $hosts
do
ftp $ftpop $host << ! > $TMPFILE.ftp 2>&1
username
password
get $dataset $filename
!
egrep '^421 |^425 |^426 |^450 |^451 |^452 |^530 |^531 |^550 |^551 |^552|^553 |^590 |^Not connected' $TMPFILE.ftp > /dev/null 2>&1
rtn=$?
if [ $rtn -eq 1 ] ; then
break
fi
done
我希望使用用户名和密码并下载文件。
答案 0 :(得分:0)
在Linux中可以找到的典型的ftp优先使用文件~/.netrc
,您可以在其中存储用户ID,密码和其他有用的宏(https://linux.die.net/man/5/netrc)。可以通过设置环境变量NETRC
来明确指定此文件的位置。如果您从其他配置文件中获得了用户名和密码,并且需要动态创建一个合适的netrc文件,这将非常有用。