如何在 Linux 中上传大文件?
 码农资讯网 阅读:977 2025-03-10 
                    1. 使用 SCP 上传大文件(适用于远程服务器)
SCP(Secure Copy)基于 SSH 进行文件传输,适用于单次安全拷贝。
基本命令:
scp largefile.tar.gz user@remote_ip:/target/directory/
优化方式:
- 启用压缩(加快传输速度): - scp -C largefile.tar.gz user@remote_ip:/target/directory/ 
- 使用 - -r递归传输目录:- scp -r large_directory user@remote_ip:/target/directory/ 
- 限制带宽,防止影响其他网络任务: - scp -l 5000 largefile.tar.gz user@remote_ip:/target/directory/ - 其中 - -l 5000表示限制速率为 5000 Kbit/s(约 625 KB/s)。
⚠️ 缺点: SCP 不能断点续传,网络中断时需要重新上传。
2. 使用 Rsync 上传大文件(支持断点续传)
rsync 是比 scp 更加强大的工具,支持增量同步和断点续传。
基本命令:
rsync -avP largefile.tar.gz user@remote_ip:/target/directory/
参数说明:
- -a:保持文件权限、时间戳等
- -v:显示详细信息
- -P:显示进度,并支持断点续传
断点续传:
如果上传过程中断,可以重新运行相同的命令,无需重新开始:
rsync -avP largefile.tar.gz user@remote_ip:/target/directory/
📌 适用于: 需要断点续传、远程同步大量文件。
3. 使用 SFTP 交互式上传大文件
SFTP(Secure File Transfer Protocol)也是基于 SSH 进行安全传输的工具。
步骤:
- 连接远程服务器: - sftp user@remote_ip 
- 上传文件: - put largefile.tar.gz /target/directory/ 
- 上传整个目录: - put -r large_directory /target/directory/ 
- 断开连接: - exit 
📌 适用于: 需要手动管理文件传输的情况。
4. 使用 lftp 上传大文件(FTP/SFTP 自动化传输)
lftp 是一个支持 FTP 和 SFTP 的命令行工具,适合自动化上传大文件。
安装 lftp
sudo apt install lftp # Ubuntu/Debian yum install lftp # CentOS/RHEL
上传文件:
lftp -u user,password sftp://remote_ip <<EOF cd /target/directory/ put largefile.tar.gz bye EOF
📌 适用于: 需要自动化、批量化文件上传。
5. 使用 wget/curl 直接从远程服务器下载大文件
如果文件已存在于远程服务器,可以使用 wget 或 curl 直接下载:
wget http://example.com/largefile.tar.gz -O /target/directory/largefile.tar.gz
或
curl -o /target/directory/largefile.tar.gz http://example.com/largefile.tar.gz
📌 适用于: 远程服务器上已有文件时。
总结:
| 方式 | 适用场景 | 主要优点 | 主要缺点 | 
|---|---|---|---|
| SCP | 安全传输文件 | 简单易用,适合小文件 | 不能断点续传 | 
| Rsync | 需要断点续传 | 高效增量同步 | 需手动安装 | 
| SFTP | 交互式文件管理 | 安全且可操作性强 | 速度较慢 | 
| lftp | 自动化批量传输 | 可脚本化、支持 FTP/SFTP | 需要额外安装 | 
| wget/curl | 远程服务器已有文件 | 直接下载,不占本地带宽 | 仅限已有的 HTTP/FTP 链接 | 
根据实际需求选择合适的工具,可以提高 Linux 大文件上传的效率!
声明
                        
                        1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!






