在Linux系统中,有多种方法可以在服务器之间传输文件。以下是常用的几种方式及其详细说明:
基于SSH协议的安全文件传输,适合中小文件。
基本语法:
scp [选项] 源文件 目标路径
示例:
- 本地 → 远程
bash
scp /local/path/file.txt user@remote:/remote/path/
- 远程 → 本地
bash
scp user@remote:/remote/path/file.txt /local/path/
- 远程 → 远程
bash
scp user1@remote1:/path/file.txt user2@remote2:/path/
常用选项:
- -P 端口
:指定SSH端口(默认22)。
- -r
:递归传输目录。
- -C
:启用压缩。
增量传输工具,适合大文件或定期同步,效率高。
基本语法:
rsync [选项] 源路径 目标路径
示例:
- 同步本地到远程:
bash
rsync -avz /local/path/ user@remote:/remote/path/
- 远程到本地:
bash
rsync -avz user@remote:/remote/path/ /local/path/
常用选项:
- -a
:归档模式(保留权限、时间等)。
- -v
:显示详细过程。
- -z
:压缩传输。
- --delete
:删除目标端多余文件(谨慎使用)。
交互式文件传输,适合需要浏览目录的场景。
连接远程服务器:
sftp user@remote
常用命令:
- put local_file
:上传文件。
- get remote_file
:下载文件。
- ls
、cd
:浏览远程目录。
- lls
、lcd
:浏览本地目录。
直接从URL下载文件到目标服务器。
示例:
wget https://example.com/file.txt -O /path/save.txt
curl -o /path/save.txt https://example.com/file.txt
通过TCP/UDP传输文件(需两端安装netcat
)。
接收端:
nc -l 端口 > 接收文件
发送端:
nc 接收端IP 端口 < 发送文件
ftp
或sftp
客户端(需安装FTP服务)。scp
rsync
sftp
nc
或FTP(安全性较低)。根据实际需求选择最适合的方法即可。