使用netcat在网络中快速复制大文件

平时在工作中,总要时不时的在不同的服务器或计算机之间传递和复制文件。通常的做法是使用scp命令将文件传到目标机器上。对较小文件的传递看不出什么不同,但当复制比较大的文件时,如超过10G以上时,使用scp会比较慢,原因是scp在传递时要用将数据加密,这样就增加了cpu时间和数据长度。如果只在本地网络中(安全性高,稳定性高)复制文件时,有一个小技巧使用netcat来进行大文件的快速复制。

 

在目标机器(IP:192.168.1.7)上先建一个空文件夹,在新建文件夹路径中使用如下命令:

netcat -l -p 5555 | tar xvf -

 在源机器上要复制文件的目录中,使用如下命令:

tar -cf - . | netcat 192.168.1.7 5555

 

可以看到,这个小技巧是netcat和tar命令的搭配,在目标机器上打开端口5555(可更改),并将接收的数据通过管道输入给tar的解包命令,在源机器上先用tar将多个文件打包,然后输入给netcat并传送给目标机器。

 

tar命令也可以用z参数对数据进行压缩处理,同样在接收端也要加上z参数来解压。tar命令也可用其它查看文件命令替换,如直接用cat打开文件等。其最终都是利用netcat建立的纯数据网络通道进行文件的快速传递,效率可以提高20%~40%左右。

 

注:在不同的Linux发布中,netcat和tar的命令格式会略有不同,如有些Linux中,netcat命令叫nc. 请参考系统的命令手册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值