先解决问题:加参数-q1,例如:
tar -czv * | nc ip 3000 -q1
之前使用16.04版本的Ubuntu不加这个参数没有问题,但是最近更新了20.04后,就出现了传输一直无法终止的问题。查看文件传输过程发现是卡在最后的一点数据上,目测是新版本加入了缓冲区机制导致的,具体未求证,有兴趣欢迎研究、交流。
解决方案就是加入端口关闭参数,-q1表示在发送EOF后1s断开连接。
附:nc传输方法
接收端(先敲命令):
nc -l 1024 | tar -xzv
发送端(后敲命令)
tar -czv * | nc 0.0.0.0 1024 -q1
其中1024为端口号,0.0.0.0为ip地址,自行修改。另外,实验了发送端先敲命令,接收端后敲命令,加上-q参数仍然无法结束,尚不清楚原因,有兴趣欢迎研究,命令如下:
发送端(先敲命令):
tar -cvz * | nc -l -p 1024
接收端(后敲命令)
nc 0.0.0.0 1024 -q1 | tar -xzv
nc在传输小文件多的场景,比scp要快很多。但是使用起来比scp麻烦一些,在发送和接收机器上都需要敲命令。
欢迎关注
人工智能技术分析
人工智能 机器学习 深度学习
AI人工智能三要素:数据、算力和算法
计算机视觉(CV)任务介绍:分类、检测、分割、超分、关键点识别、图像生成、度量学习
关于我
缘起:新的开始
公众号持续更新原创内容,欢迎订阅。
AI人工智能与大数据