插件窝 干货文章 Linux服务器之间传输文件

Linux服务器之间传输文件

文件 remote bash path 572    来源:    2025-05-11

在Linux服务器之间传输文件有多种方法,以下是常见的几种方式及其详细操作步骤:


1. SCP (Secure Copy)

基于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:启用压缩


2. Rsync

增量同步工具,适合大文件或定期备份,支持断点续传。

基本语法:

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:删除目标端多余文件


3. SFTP (SSH File Transfer Protocol)

交互式文件传输,适合需要浏览目录的场景。

连接远程服务器:

sftp user@remote

常用命令: - put localfile:上传文件 - get remotefile:下载文件 - lscd:浏览远程目录 - llslcd:浏览本地目录


4. NFS (Network File System)

适合需要共享目录的场景,需提前配置。

服务端配置: 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

5. HTTP/HTTPS下载

临时共享文件的快速方案。

使用Python快速启HTTP服务:

python3 -m http.server 8000  # 当前目录作为根目录

然后通过wgetcurl下载:

wget http://server_ip:8000/file.txt

6. SSH + Tar(大文件优化)

结合压缩的传输方式,节省带宽。

示例:

tar czf - /large/dir | ssh user@remote "tar xzf - -C /target/path"

选择建议:

  • 单次小文件传输scp
  • 大文件或定期同步rsync
  • 交互式操作sftp
  • 多服务器共享目录NFS
  • 临时分享HTTP服务

注意事项:

  1. 确保防火墙放行相关端口(如22、2049等)。
  2. 使用SSH密钥认证避免频繁输入密码。
  3. 传输前用du -sh检查文件大小,避免磁盘空间不足。

需要更具体的场景解决方案可以进一步说明!