当前位置:首页>Linux>Linux跨服务器传文件的6种实用方案

Linux跨服务器传文件的6种实用方案

  • 2026-10-11 06:09:47
Linux跨服务器传文件的6种实用方案
运维干久了,你会发现一个规律:服务器之间传文件,是最频繁、也最容易翻车的操作。有人用ftp,要搭服务、配用户、开端口,麻烦;有人用网盘,上传下载慢,还不安全;还有人用u盘拷,物理隔离环境没办法的办法。
其实,linux命令行本身就提供了多种文件传输方式,不需要装任何额外软件,一条命令就能搞定。今天一次介绍6种方式,覆盖常用的文件传输场景。
一、scp-通用文件传输

这个是我们运维中使用最多的命令。

适用:简单拷贝、一次性小文件,弹幕目录。几乎所有linux系统都自带。

1.本地上传单个文件
scp local_file.txt user@remote_ip:/target/path/scp  iftop-0.17.tar.gz  root@192.168.2.104:/root/
2.上传整个目录(加 -r)
scp -r local_dir/ user@remote_ip:/target/path/scp -r /data/ceshi/ root@192.168.2.104:/root/
3.带端口传输(-P)
scp -P port -r dir/ user@remote_ip:/root/scp  -P 22 -r /data/ceshi/ root@192.168.2.104:/root/
4.保留权限时间(-p)
scp -rp dir/ user@remote_ip:/root/scp -rp /data/bak/ root@192.168.2.104:/root/
5. 限速传输(-l 单位 KB/s)
#scp也可以限速传输,默认单位是k,1024就是1Mbit/sscp -l 1024 bigfile.tar.gz user@remote_ip:/opt/
scp的优点:简单、通用、开箱即用
缺点:不支持断点续传、重复传会全量覆盖
二、sftp — 交互式传输
适用:不确定路径、需要来回拷、手动操作,替代图形化的xftp
1.连接远端
sftp user@remote_ip#以访问本地xftp为例 sftp root@192.168.2.104
常用的命令
ls      #看远程lls     #看本地cd      #切远程目录lcd     #切本地目录get     #下载put     #上传exit    #退出lpwd    #查看当前本地目录pwd     #查看远程目录 
2.下载文件
get remote_file.tar.gz ./get txtbak20251221.tar.gz ./
2.上传文件和目录
put -r local_dir/ /remote/path/put -r /bak/   /data/ceshi/
三、rsync—最强大、增量同步工具
适用:大量文件、备份、重复同步、大目录只传变化内容,速度快、支持断点续传
1.同步目录
rsync -avz dir/ user@remote_ip:/target/dir/rsync -avz /bak/  root@192.168.2.104:/root/
常用参数
-a  归档(保留权限、属主、递归)

-v  显示过程

-z  压缩传输(更快)

--delete远程多出来的文件删除(慎用),它会删除目标目录中源目录没有的文件,它主要用在镜像同步,以源目录为主的场景。

-P  断点续传 + 进度(大文件必备)

2.大文件断点续传
rsync -avzP bigfile.tar.gz user@remote_ip:/opt/rsync -avzP CentOS-7-x86_64-DVD-1810.iso  root@192.168.2.104:/opt/
3.排除文件
rsync -avz --exclude="*.log" --exclude="tmp/" code/ user@remote:/opt/rsync -avz --exclude="*.log" --exclude="bak/" root@192.168.2.104:/root/

4.--delete 高危提醒

--delete实现源目录和目标目录完全镜像,路径书写错误极易清空目标数据

#危险用法rsync -avz --delete /data/ /backup/#如果/data/是空目录,/backup/会被清空#安全用法:先dry-run预览rsync -avz --dry-run --delete /data/ user@remote_ip:/backup/
四、nc(netcat)—无密码直传
适用:内网临时传、不想输密码、脚本批量
传输数据时,要求接收端先启动监听,发送端后推送数据。
1.接收端先起监听
nc -l 9999 > file.tar.gz
2.发送端数据发送
nc remote_ip 9999 < file.tar.gz
3.目录打包传输
#接收端nc -l 9999 | tar zxvf -#发送端tar -czvf - bak/ | nc 192.168.2.104 9999
五、ssh+管道(dd/cat)—极简流式传输
适用:临时拷文件、脚本中使用较多。
1.直接把文件传到远程
cat localfile | ssh user@remote_ip "cat > /target/path/localfile"cat app.log  |ssh root@192.168.2.104 "cat >/root/app.log"
2.大文件流式拷贝(生成环境一般不推荐)
dd if=/dev/sdb | ssh user@remote_ip "dd of=/dev/sdb"#将本地磁盘/dev/sdb的数据,通过ssh管道直接写入远程服务器的/dev/sdb#一般生产环境或者不熟练的不推荐使用,有一定的风险 
3.目录打包传
tar zcvf - dir/ | ssh user@remote_ip "tar zxvf - -C /opt/"tar czvf - /bak/ | ssh root@192.168.2.104 "tar -xzvf - -C /root/"
六、wget /curl —跨机器HTTP下载
适用:远端搭建nginx/apache,公网/内网通过http下载文件,文件放在web站点根目录
wget http://remote_ip/file.tar.gz -P /opt/#下载文件,本次远程文件防止web服务器的/var/www/html中,也可以web代理设置 wget http://192.168.2.104/ceshi.iso -P /root/
curl -O http://remote_ip/file.tar.gzcurl -O http://192.168.2.104/ceshi.iso
七、6 种传输方式特点
命令
特点
最适合场景
scp
简单通用
一次性小文件 / 日常传输
sftp
交互式
手动上传下载
rsync
增量 / 断点续传
备份、大目录、高频同步
nc
内网超快
临时无密码直传
ssh + 管道
一句话
脚本、流式不落地
wget
公网下载
HTTP 公开文件
  • 概括起来传输文件推荐:
  • 日常零散传输用scp;人工可视化操作用sftp;备份、大文件、重复同步优先rsync。
八、注意事项

1.Permission denied

目标目录权限不够,用户没写权限导致,这也是运维中经常遇到的问题。

#1.检查目标目录权限ls -ld /target/path/#2.临时测试scp file user@remote_ip:/tmp/#3.确认用户有写权限ssh user@remote_ip "ls -la /target/path/
  • 2.端口非默认22端口

scp/rsync/sftp都要指定端口:

#对于非默认端口,需要手动指定 #scp中端口用大写Pscp -P 2222 file user@remote_ip:/tmp/#rsync中-e指定ssh的参数rsync -e "ssh -p 2222" -avz dir/ user@remote_ip:/tmp/sftp -oPort=2222 user@remote_ip

3.大文件传一半断了

#用rsync续传rsync -avzP --partial bigfile.tar.gz user@remote_ip:/opt/#--partial保留部分传输的文件,下次继续

linux之间文件传输不用记一堆,掌握常规的scp+rsync就足够应付99%的场景。

简单用scp,重要数据、大目录、备份一律用rsync,稳定、高效、可脚本化。如果你觉得文章对你的运维工作有帮助,记得点赞加收藏。

#运维   #linux运维   #linux文件传输 #scp #rsync  #wget #nc

Linux运维实战:lshw命令,查硬件就用这一套

Linux内存太高别慌!最常用内存命令+安全清理缓存,一篇讲透

告别 mount 和df!Linux 挂载查看神器findmnt高级玩法大全

最新文章

随机文章