Shell Scipt从ftp服务器获取文件

时间:2019-06-27 15:51:34

标签: shell

我有一个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

我希望使用用户名和密码并下载文件。

1 个答案:

答案 0 :(得分:0)

在Linux中可以找到的典型的ftp优先使用文件~/.netrc,您可以在其中存储用户ID,密码和其他有用的宏(https://linux.die.net/man/5/netrc)。可以通过设置环境变量NETRC来明确指定此文件的位置。如果您从其他配置文件中获得了用户名和密码,并且需要动态创建一个合适的netrc文件,这将非常有用。