在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/
- 显示进度:
bash
rsync -avz --progress /largefile user@remote:/path/
常用选项:
- -a
:归档模式(保留权限、属性)
- -v
:显示详细过程
- -z
:压缩传输
- --delete
:删除目标端多余文件
交互式文件传输,适合需要浏览目录的场景。
连接远程服务器:
sftp user@remote
常用命令:
- put localfile
:上传文件
- get remotefile
:下载文件
- ls
、cd
:浏览远程目录
- lls
、lcd
:浏览本地目录
适合需要共享目录的场景,需提前配置。
服务端配置:
1. 安装NFS服务:
bash
sudo apt install nfs-kernel-server # Debian/Ubuntu
sudo yum install nfs-utils # CentOS/RHEL
2. 编辑/etc/exports
,添加共享目录:
/shared/path client_ip(rw,sync,no_subtree_check)
3. 启动服务:
bash
sudo systemctl start nfs-server
客户端挂载:
sudo mount -t nfs server_ip:/shared/path /local/mountpoint
临时共享文件的快速方案。
使用Python快速启HTTP服务:
python3 -m http.server 8000 # 当前目录作为根目录
然后通过wget
或curl
下载:
wget http://server_ip:8000/file.txt
结合压缩的传输方式,节省带宽。
示例:
tar czf - /large/dir | ssh user@remote "tar xzf - -C /target/path"
scp
rsync
sftp
NFS
HTTP服务
du -sh
检查文件大小,避免磁盘空间不足。需要更具体的场景解决方案可以进一步说明!