使用 wget 命令下载 FTP 内容
在 Linux 系统中,wget 是一个功能强大的非交互式网络下载工具,支持 HTTP、HTTPS 和 FTP 协议。通过 wget 下载 FTP 服务器上的文件或目录非常方便。
基本命令格式
下载 FTP 文件的基本命令格式如下:
wget ftp://服务器地址/文件路径 --ftp-user=用户名 --ftp-password=密码
参数详解与示例
下面是对命令中各部分的详细说明:
- ftp://服务器地址/文件路径:指定 FTP 服务器的地址和要下载的文件或目录的完整路径。例如:
ftp://192.168.1.100/public/report.pdf或ftp://example.com/data/archive.tar.gz。 - --ftp-user=用户名:用于指定登录 FTP 服务器的用户名。
- --ftp-password=密码:用于指定对应用户的密码。
完整示例:假设要从 IP 为 10.0.0.5 的 FTP 服务器,以用户 alice 和密码 secret123 下载 /backups/database.sql 文件,命令如下:
wget ftp://10.0.0.5/backups/database.sql --ftp-user=alice --ftp-password=secret123
进阶用法与注意事项
1. 递归下载目录:如果需要下载整个目录及其内容,可以添加 -r(递归)选项。
wget -r ftp://10.0.0.5/public/ --ftp-user=alice --ftp-password=secret123
2. 安全性警告:在命令行中直接输入密码存在安全风险(密码会出现在进程列表或 shell 历史记录中)。更安全的方式是:
- 使用
--ftp-password=`cat password_file`从文件中读取密码。 - 或者,考虑使用
.netrc文件进行认证(详见下文)。
3. 使用 .netrc 文件进行认证(推荐):可以在家目录创建 ~/.netrc 文件,安全地存储 FTP 凭据。
machine 10.0.0.5
login alice
password secret123
然后使用更简洁的命令下载,无需在命令行中暴露密码:
wget ftp://10.0.0.5/backups/database.sql
4. 被动模式:如果遇到连接问题,可以尝试使用被动模式,通过添加 --passive-ftp 选项。
wget --passive-ftp ftp://10.0.0.5/file.zip --ftp-user=alice --ftp-password=secret123
5. 限速与重试:可以使用 --limit-rate=200k 限制下载速度,使用 -t 5 指定网络错误时的重试次数。
wget -t 5 --limit-rate=200k ftp://10.0.0.5/largefile.iso --ftp-user=alice --ftp-password=secret123
总结
wget 是 Linux 环境下从 FTP 服务器获取文件的可靠工具。对于简单的下载任务,使用基本格式即可。对于自动化脚本或需要更高安全性的场景,建议结合 .netrc 文件使用。掌握递归下载、被动模式等选项,可以应对更复杂的网络环境。
原来如此