这个是我们运维中使用最多的命令。
适用:简单拷贝、一次性小文件,弹幕目录。几乎所有linux系统都自带。
scp local_file.txt user@remote_ip:/target/path/scp iftop-0.17.tar.gz root@192.168.2.104:/root/

scp -r local_dir/ user@remote_ip:/target/path/scp -r /data/ceshi/ root@192.168.2.104:/root/

scp -P port -r dir/ user@remote_ip:/root/scp -P 22 -r /data/ceshi/ root@192.168.2.104:/root/

scp -rp dir/ user@remote_ip:/root/scp -rp /data/bak/ root@192.168.2.104:/root/

#scp也可以限速传输,默认单位是k,1024就是1Mbit/sscp -l 1024 bigfile.tar.gz user@remote_ip:/opt/
sftp user@remote_ip#以访问本地xftp为例sftp root@192.168.2.104

ls #看远程lls #看本地cd #切远程目录lcd #切本地目录get #下载put #上传exit #退出lpwd #查看当前本地目录pwd #查看远程目录
get remote_file.tar.gz ./get txtbak20251221.tar.gz ./

put -r local_dir/ /remote/path/put -r /bak/ /data/ceshi/

rsync -avz dir/ user@remote_ip:/target/dir/rsync -avz /bak/ root@192.168.2.104:/root/

-v 显示过程
-z 压缩传输(更快)
--delete远程多出来的文件删除(慎用),它会删除目标目录中源目录没有的文件,它主要用在镜像同步,以源目录为主的场景。
-P 断点续传 + 进度(大文件必备)
rsync -avzP bigfile.tar.gz user@remote_ip:/opt/rsync -avzP CentOS-7-x86_64-DVD-1810.iso root@192.168.2.104:/opt/

rsync -avz --exclude="*.log" --exclude="tmp/" code/ user@remote:/opt/rsync -avz --exclude="*.log" --exclude="bak/" root@192.168.2.104:/root/

--delete实现源目录和目标目录完全镜像,路径书写错误极易清空目标数据
#危险用法rsync -avz --delete /data/ /backup/#如果/data/是空目录,/backup/会被清空#安全用法:先dry-run预览rsync -avz --dry-run --delete /data/ user@remote_ip:/backup/
nc -l 9999 > file.tar.gz
nc remote_ip 9999 < file.tar.gz
#接收端nc -l 9999 | tar zxvf -#发送端tar -czvf - bak/ | nc 192.168.2.104 9999


cat localfile | ssh user@remote_ip "cat > /target/path/localfile"cat app.log |ssh root@192.168.2.104 "cat >/root/app.log"

dd if=/dev/sdb | ssh user@remote_ip "dd of=/dev/sdb"#将本地磁盘/dev/sdb的数据,通过ssh管道直接写入远程服务器的/dev/sdb#一般生产环境或者不熟练的不推荐使用,有一定的风险
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 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

#1.检查目标目录权限ls -ld /target/path/#2.临时测试scp file user@remote_ip:/tmp/#3.确认用户有写权限ssh user@remote_ip "ls -la /target/path/
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