您的位置:首页 > 运维架构 > Linux

linux中下载ftp文件的几个方法

2016-09-16 00:00 99 查看
一、最简单的方法: wget

下面的命令用来下载ftp服务器上指定目录的所有文件

wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r

-r 参数表示递归下载;

可以使用--directory-prefix=/mypath/ 指定下载后存储路径;-nH选项可以不在本地创建服务器上的目录结构

另一个令人迷惑的选项是--delete-after,它并不是用来删除服务器上的已下载文件,而是用来删除本机的;

wget之所以是wget而不是wput,它只能进行下载操作,不支持对ftp服务器上的任何写操作,比如删除。

二、可以删除文件的方法:lftp

项目需求是下载ftp服务器上的指定文件夹取内的所有文件,并于下载后删除,wget不能满足要求,于是改写出下面的脚本。

mget命令可以下载多个文件,-E参数表示下载后删除服务器上的文件。

#!/bin/bash

#指定ftp服务器的ip

serverip=1.2.3.4

#指定ftp服务器的ftp用户

serveruser=root

#指定ftp服务器的ftp用户密码

serverpass=123456

#指定client主机本地下载文件存放的目录

localdir=./data

logfile=../log/ftp_download.log

#指定server主机的ftp目录

remotedir=./

#指定server主机的主机名

host=test_host

#切换到本地下载文件存放的目录

cd $localdir

#输入开始备份的信息

echo "Starting FTP Download on " $host

#连接ftp服务器

/usr/bin/lftp << EOF

open $serverip

user $serveruser $serverpass

#切换到server主机的ftp目录

echo "cd " $remotedir

cd $remotedir

#列出ftp服务器ftp目录中文件列表并存放到client中的$localdir中

ls . >> $logfile

#下载ftp服务器ftp目录中的所有文件

mget -E *.txt

#退出ftp服务器

bye

三、其他方法

系统中的ftp命令,和强大的curl

curl支持FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET 和TFTP,方便在自己的程序中调用。同时支持cookie、代理、密码和证书验证。非常强大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: