通过nc远程拷贝文件

方法1,传输文件演示(先启动接收命令)

使用nc传输文件还是比较方便的,因为不用scp和rsync那种输入密码的操作了

把A机器上的一个rpm文件发送到B机器上

需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。

步骤1,先在B机器上启动一个接收文件的监听,格式如下:

意思是把赖在9995端口接收到的数据都写到file文件里(这里文件名随意取)

B机器接收完毕,它会自动退出监听,文件大小和A机器一样,md5值也一样

1
2
nc -l port >file
nc -l 9995 >zabbix.rpm

步骤2,在A机器上往B机器的9995端口发送数据,把下面rpm包发送过去

1
nc 10.0.1.162 9995 < zabbix-release-2.4-1.el6.noarch.rpm


方法2,传输文件演示(先启动发送命令)

步骤1,先在B机器上,启动发送文件命令

下面命令表示通过本地的9992端口发送test.mv文件

1
nc -l 9992 <test.mv

步骤2,A机器上连接B机器,取接收文件

下面命令表示通过连接B机器的9992端口接收文件,并把文件存到本目录下,文件名为test2.mv

1
nc 10.0.1.162 9992 >test2.mv


方法3,传输目录演示(方法发送文件类似)

步骤1,B机器先启动监听,如下

A机器给B机器发送多个文件

传输目录需要结合其它的命令,比如tar

经过我的测试管道后面最后必须是 - ,不能是其余自定义的文件名

1
nc -l 9995 | tar xfvz -

步骤2,A机器打包文件并连接B机器的端口

管道前面表示把当前目录的所有文件打包为 - ,然后使用nc发送给B机器

1
tar cfz - * | nc 10.0.1.162 9995

B机器这边已经自动接收和解压

参考