如何在 Linux 中上传大文件?
阅读:176 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处理!