[iteblog@www.iteblog.com /user/iteblog]$ ftp -bash: ftp: command not found [iteblog@www.iteblog.com /user/iteblog]$ yum install ftp

在运行下面命令前,请设置好相关变量的值:

HOST=www.iteblog.com
PORT=21
USER=iteblog
PASSWD=iteblog_hadoop

请根据自己的情况设置。

使用 ftp 命令下载

下载单个文件

下载单个文件的时候可以通过下面命令实现

ftp -n $HOST $PORT <<ITEBLOG
user $USER $PASSWD
binary
get iteblog/2018-05-22/test.txt
quit
ITEBLOG

上面命令将 test.txt 文件下载到当前目录下的 iteblog/2018-05-22/ 文件夹中,我们需要事先在当前工作目录下创建好 iteblog/2018-05-22/ 目录,否则会报错。

如果你 FTP 服务器的端口为 21 ,那么我们可以不设置端口:

ftp -n $HOST <<ITEBLOG
user $USER $PASSWD
binary
get iteblog/2018-05-22/test.txt
quit
ITEBLOG

这个同样适用于下面的 wget 和 curl 方式的下载。

当然,我们也可以将文件存放到自定义的目录下面:

ftp -n $HOST $PORT <<ITEBLOG
user $USER $PASSWD
binary
get iteblog/2018-05-22/test.txt /home/iteblog/
quit
ITEBLOG

上面命令从 FTP 服务器上下载 iteblog/2018-05-22/test.txt 文件,并存放在 /home/iteblog/ 目录下。

下载多个文件

如果需要下载多个文件,可以使用 mget 实现:

ftp -n $HOST $PORT <<ITEBLOG
user $USER $PASSWD
binary
prompt
mget iteblog/2018-05-22/18987409588.txt iteblog/2018-05-22/18987931313.txt
quit
ITEBLOG

同上面 get 一样,这个命令将 iteblog/2018-05-22/test.txtiteblog/2018-05-22/test1.txt 文件下载到当前工作目录下的 iteblog/2018-05-22/ 文件夹下

当然,我们也可以通过通配符来一次性下载所有符合条件的文件:

ftp -n $HOST $PORT <<ITEBLOG
user $USER $PASSWD
binary
prompt
mget iteblog/2018-05-22/*.txt
quit
ITEBLOG

通过 wget 下载

我们也可以使用 wget 下载 FTP 服务器上的文件:

wget -r -nH -P/tmp ftp://$HOST:$PORT/iteblog/2018-05-22/* --ftp-user=$USER --ftp-password=$PASSWD

--2018-05-23 17:23:29--  ftp://iteblog:*password*@www.iteblog.com/iteblog/2018-05-22/test.txt
           => “test.txt”
Resolving www.iteblog.com... 10.94.76.234
Connecting to www.iteblog.com|10.94.76.234|:21... connected.
Logging in as iteblog ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /iteblog/2018-05-22 ... done.
==> SIZE test.txt ... 804763
==> PASV ... done.    ==> RETR test.txt ... done.
Length: 804763 (786K) (unauthoritative)

100%[=============================================>] 804,763     1.09M/s   in 0.7s    

2018-05-23 17:23:31 (2.14 MB/s) - “test.txt” saved [804763]

-P 参数指定的是下载的文件存放目录。
我们还可以这么写:

[iteblog@www.iteblog.com ~]$ wget ftp://$USER:$PASSWD@$HOST:$PORT/iteblog/2018-05-22/test.txt

--2018-05-23 17:35:31--  ftp://iteblog:*password*@www.iteblog.com/iteblog/2018-05-22/test.txt
           => “test.txt”
Resolving www.iteblog.com... 10.94.76.234
Connecting to www.iteblog.com|10.94.76.234|:21... connected.
Logging in as iteblog ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /iteblog/2018-05-22 ... done.
==> SIZE test.txt ... 804763
==> PASV ... done.    ==> RETR test.txt ... done.
Length: 804763 (786K) (unauthoritative)

100%[=============================================>] 804,763     1.09M/s   in 0.7s    

2018-05-23 17:35:32 (1.09 MB/s) - “test.txt” saved [804763]

通过 curl 命令下载

[iteblog@www.iteblog.com ~]$ curl ftp://$HOST:$PORT/iteblog/2018-05-22/test.txt -u $USER:$PASSWD -o /tmp/test.txt

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  785k  100  785k    0     0  1066k      0 --:--:-- --:--:-- --:--:-- 1084k

还可以通过下面两种方法下载

curl ftp://$HOST:$PORT/iteblog/2018-05-22/test.txt --user $USER:$PASSWD -o /tmp/test.txt

curl ftp://$USER:$PASSWD@$HOST:$PORT/iteblog/2018-05-22/test.txt -o /tmp/test.txt
本博客文章除特别声明,全部都是原创!
原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【在 Shell 中下载 ftp 文件的几种方法】(https://www.iteblog.com/archives/2369.html)
喜欢 (7)
分享 (0)
发表我的评论
取消评论

表情
本博客评论系统带有自动识别垃圾评论功能,请写一些有意义的评论,谢谢!