这是一个创建于 1842 天前的主题,其中的信息可能已经有所发展或是发生改变。
有时 Linux 服务器可能网络等等其它原因没法通过 rsync 或者 scp 的方式传输文件,那有没有更简洁的方式来进行文件传输呢?
nc 是 netcat 的简写,有着网络界的瑞士军刀美誉,,是一款功能强大的网络调试和探测工具,之前有介绍命名 nc 进行端口探测如何探测 UDP 端口是否开放,除了进行端口探测之外,nc 还有一个很强大的功能就是文件传输
下面介绍 nc 命令进行文件传送
1)如上所示
ServerA:10.20.10.60
ServerB:10.20.10.62
ServerA 上生成一个测试文件 CentOS6.iso 大小 1000M=1G
然后 nc -l 1234 < CentOS6.iso
ServerA 监听在 1234 端口上,作为发送端.
ServerB 上进行接收 nc 10.20.10.60 1234 > CentOS6.iso
接收完成后可以使用 md5sum 比较文件的 md5 值确认收到的文件是否与发送端一致
=====================================================
2)为了更直观的显示传输进度与速度,可以配合 PV 命令
ServerA 上
rpm -ivh pv-1.6.6-1.x86_64.rpm
dd if=/dev/zero of=CentOS6_20190825.iso bs=1024M count=1
md5sum CentOS6_20190825.iso
pv CentOS6_20190825.iso | nc -l 2345
ServerB 上
rpm -ivh pv-1.6.6-1.x86_64.rpm
nc 10.20.10.60 2345 | pv > CentOS6-20190825.iso
这样文件就传输到了 ServerB 上,你可以看到传输的进度
如果传输目录的话
例如:/usr/local/mysql/data 目录
发送端
cd /usr/local/mysql/data
tar -zcf - * | pv | nc -l 3456
接收端
nc 10.20.10.62 3456 | pv | tar -zxf -
3 条回复 • 2019-11-14 07:06:25 +08:00
|
|
1
dorothyREN 2019-11-12 21:44:12 +08:00
网络原因的话 你确定 nc 就能传?
|
|
|
2
cdlnls 2019-11-13 13:15:00 +08:00 via iPhone
nc 确实可以传文件,但是 nc 不是系统默认安装的,每次要用的时候还得额外安装
|
|
|
3
msg7086 2019-11-14 07:06:25 +08:00
震惊! ssh 就能传送文件。
|