目录
本文旨在说明如何以命令行的方式直接下载 FTP 上的文件至本地指定文件夹。
使用这个方式的原因是,在公司的一个需要实现的功能中,需要从 FTP 读取文件,日积月累 FTP 的文件已经达到 82 w 个文件,导致读取非常耗时。需要将比较古老的文件剪切至备份文件专用服务器,并将备份的文件变为压缩包。
本来想着直接连接 FTP 服务器,将文件直接剪切出来,但是遇到了一系列问题,首当其冲就是文件太多,导致进不去文件夹,直接显示操作超时,才会考虑使用 DOS 命令行的方式获取文件。
介绍本次用到的 DOS 命令
1. 打开命令行
【win + R → 输入 cmd → 回车】
2. 进入 FTP
【输入 FTP → 回车】,出现【ftp>】即成功进入 ftp
3. 连接 FTP
假设要连接的 FTP 地址为:130.147.192.xx,账号为 ftpuserxxx,密码为 userxxxx
【open 130.147.192.xx】
这里使用默认 21 端口,若使用其他端口,例如110端口,请输入【open 130.147.192.xx 110】
4. 输入用户名及密码
【用户名 → 回车 → 密码 → 回车】,出现【User logged in,proceed】代表成功
5. 查看 FTP 文件目录
【dir → 回车】,可以看出这个目录下面只有 HIS 一个文件夹
6. 进入【HIS】文件夹
【cd his → 回车】
7. 指定本地文件夹
需要事先建立好文件夹,此文件夹即为 FTP 文件下载存储的文件夹。
【lcd d:\FTPDownLoad → 回车】
8. 开关交互模式
关闭交互模式时后续使用 mget 命令时不会有提示
【prompt → 回车】
9. 下载文件
【mget *.* → 回车】 ,将 FTP 服务器上 HIS 目录下的文件下载到本地【d:\FTPDownLoad】
*.* 通配符,若需 txt 文件,变为 *.txt 即可
输入后会获取文件目录,若文件较多,则会停留在此较长时间。
10. 下载时会有提示
此时查看本地【d:\FTPDownLoad】文件夹,发现部分已经下载,等待下载完毕即可。
11. 耗时计算
82w 个文件,每个文件耗时在 几十 ms 左右,全部下载完毕仍需要几个小时。
【820000 * 20 ms / 1000 ms / 60 / 60 = 4.5556 H】
1 s = 1000 ms
1 min = 60 s
1 H = 60 min