<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[实践OK]Linux在CentOS下的nc/ncat命令端口侦听在不同CentOS6/7的rpm包里有变化，linux nc命令传输文件(远程复制文件，传文件。)，linux快速复制大量小文件方法 nc+tar,nc + tar 传送整个文件目录的方法。how-can-i-keep-netcat-connection-open？]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Mon, 18 Dec 2017 03:55:06 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<textarea name="code" class="php" rows="15" cols="100">
10.56.17.* 发送（向服务器上传文件）：
nc 10.5*.17.6 4444 &lt;
 /home/xiangdong/xsrc-project_202302.sql
10.5*.17.*上接收（在CentOS上实践发现接收完就自动退出，Mac上面好像会一直在，和主动Ctrl+C）：
nc -l 4444 &gt; /home/xiangdong/xsrc-project_202302.sql
</textarea><br/><br/>特别注意：接收文件一端开端口&nbsp;&nbsp;&gt; ，发送文件一端 &lt; ,IP 端口传文件，如果反了接收文件端开端口它接收完成后也还是不会自动退出，得自己估摸时间Ctrl+C：<br/><textarea name="code" class="php" rows="15" cols="100">
nc -l 4444 &gt; /usr/local/lib/libzip.so.5.0.0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#接收端&nbsp;&nbsp;&gt;
nc 10.71.11.4* 4444 &lt; /usr/local/lib/libzip.so.5.0.0 #发送端&nbsp;&nbsp;&lt;
</textarea><br/><br/><br/>新增nc 传目录小文件,传输目录演示（方法发送文件类似），这个和单个文件的 &lt; 和&nbsp;&nbsp;&gt;有点相反的味道,<br/>服务开端口的是接收文件方，相当于是传文件给服务器端！！！<br/>整体：<br/>nc -l 4444 &#124;tar -zxvf -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#接收端开10.73.234.25 4444端口<br/>tar -zcvf - * &#124; nc 10.73.234.251 4444&nbsp;&nbsp;#传文件端连接端口机，中间横两边有空格！<br/><br/>步骤1，打开接收打包文件的端口（A机器先启动端口监听），如下：<br/>nc -l 4444 &#124;tar zxvf -&nbsp;&nbsp;&nbsp;&nbsp; #测试管道后面最后必须是 - ，不能是其余自定义的文件名<br/><textarea name="code" class="php" rows="15" cols="100">
nc -l 4444 &#124;tar zxvf -
php72/
php72/swoole-php72-4.2.12.el6.x86_64.spec
...

再次实践，接收部分有点问题，看步骤2：
nc -l 4444 &#124;tar zxvf -
</textarea><br/><br/>步骤2，发送所有文件或某个文件（B机器打包文件并连接A机器打开的端口）:<br/>管道前面表示把当前目录的所有文件打包为 - ，然后使用nc发送给B机器<br/>tar zcvf - * &#124; nc 10.71.182.250 4444&nbsp;&nbsp;#传整个目录有点慢，最好是传压缩包<br/><textarea name="code" class="php" rows="15" cols="100">
tar zcvf - php72 &#124; nc 10.71.182.250 4444&nbsp;&nbsp;
php72/
php72/swoole-php72-4.2.12.el6.x86_64.spec
...

再次实践，这个是放后面不是放前面，实践OK，前面tar 放前面不行AddTime：2019-05-28
nc 10.73.235.0 4444 &#124; tar zxvf -

</textarea><br/><br/>nc客户端：<br/>ss -ntp&#124;grep 4444<br/>ESTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.73.234.2**:35478&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.73.2*5.0:4444&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;users:((&quot;nc&quot;,pid=54501,fd=3))<br/><br/>nc服务端：<br/>ss -ntp&#124;grep 4444<br/>ESTAB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10.73.2*5.0:4444&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.73.234.2**:35478 <br/><br/>iostat <br/><br/><br/>来自:https://blog.csdn.net/mtj66/article/details/74959287<br/>From: https://blog.csdn.net/mtj66/article/details/74959287<br/><br/><br/>传完不退出参数：<br/>how-can-i-keep-netcat-connection-open：<br/>-k&nbsp;&nbsp;&nbsp;&nbsp;Forces nc to stay listening for another connection after its current<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection is completed.&nbsp;&nbsp;It is an error to use this option without the<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -l option.<br/><textarea name="code" class="php" rows="15" cols="100">
nc -l 4444 &lt;&nbsp;&nbsp;/home/test/rpmbuild/RPMS/x86_64/openssl-1.0.1g-180911102225.el6.x86_64.rpm&nbsp;&nbsp;-k
</textarea><br/>From: https://unix.stackexchange.com/questions/423407/how-can-i-keep-netcat-connection-open<br/><br/><textarea name="code" class="php" rows="15" cols="100">
man nc
nc -l -p &lt;port&gt; 这个命令对于Linux CentOS的nc-1.84这个包的命令参数不是这样的，而是这样：nc -l 4444 &gt;&nbsp;&nbsp;config.py，实践也是和ncat -l&nbsp;&nbsp;-p 4444 &gt;&nbsp;&nbsp;config.py ，一样的可以传文件的，只是参数不一样罢了。
前提是这个NC，不是这个NC哟，否则命令失效（非此nc:rpm -qf /usr/bin/nc nc-1.84-24.el6.x86_64）:
得是这个nc，否则nc -l -p会没法建立起侦听端口，会提示命令行参数有误: rpm -qf /bin/nc nmap-ncat-6.40-7.el7.x86_64 
也就是说：
一）CentOS6.X想要侦听一个端口，得用nmap的RPM包，而简单的nc简单连接命令则要用nc-1.84。
二）CentOS7想要侦听一个端口或nc简单连接命令用一个nmap-ncat的RPM包就Ok了。
CentOS6.X:
 yum -y install nmap @centOS6.X:
rpm -ql nmap
/usr/bin/ncat
/usr/bin/ndiff
/usr/bin/nmap
/usr/bin/nping

yum -y install nmap-ncat @@centOS6.X:
无此包！

使用：ncat&nbsp;&nbsp;-l -n 4444 &gt; a.txt
CentOS7.X:（nmap是没有ncat的，ncat而是放在包：nmap-ncat里的。）
rpm -qpl nmap-6.40-7.el7.x86_64.rpm @centOS7.X:
/usr/bin/ndiff
/usr/bin/nmap
/usr/bin/nping

rpm -ql nmap-ncat&nbsp;&nbsp;@centOS7.X:
/usr/bin/nc
/usr/bin/ncat
 三）经实践尽管操作系统版本不同其RPM包不同，但CentOS6/7之前一个开端口一个传均无问题：
（1）CentOS6.X向CentOS6.X传文件OK：
ncat -l -p 4444 &gt; config.py&nbsp;&nbsp;@CentOS6.X
nc 10.71.182.17* 4444 &lt; config.py&nbsp;&nbsp; @CentOS6.X

（2）CentOS6.X向CentOS7.X传文件OK：
ncat -l -p 4444 &gt; config.py&nbsp;&nbsp;@CentOS7.X
nc 10.71.182.17* 4444 &lt; config.py&nbsp;&nbsp; @CentOS6.X

（3）CentOS7.X向CentOS6.X传文件OK：
ncat -l -p 4444 &gt; config.py&nbsp;&nbsp;@CentOS6.X
nc 10.71.182.17* 4444 &lt; config.py&nbsp;&nbsp; @CentOS7.X


</textarea><br/><br/>如果两台计算机之间突然需要传送一个文件，而一时又没有什么好用的通讯工具，也来不及开服务器的时候，那么可以使用nc来传送文件。方法如下：<br/><br/>接收者:&nbsp;&nbsp;$ nc -l -p 12345 &gt; save_filename&nbsp;&nbsp;&nbsp;&nbsp;; 12345为1024-65535的任意端口号<br/>发送者： $ nc &lt;接收者ip&gt; 12345 &lt; send_file<br/><br/>一）目的主机监听 <br/>nc -l 监听端口[ 未使用端口] &gt; 要接收的文件名 ，如：nc -l 4444 &gt; cache.tar.gz <br/>实践如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/>nc -l -p 4444&nbsp;&nbsp;&gt; memcached-3.0.3.tgz&nbsp;&nbsp;#@10.71.182.156<br/><br/>二）源主机发起请求 <br/>nc 目的主机ip 目的端口 &lt; 要发送的文件 <br/>nc 192.168.0.85 4444 &lt; /root/cache.tar.gz <br/><br/>实践如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/>nc 10.71.182.156 4444 &lt; /home/test/rpmbuild/SOURCES/memcached-3.0.3.tgz<br/><br/>三）查看是否拷贝完毕：<br/>ls /home/test/rpmbuild/SOURCES/memcached-3.0.3.tgz<br/>/home/test/rpmbuild/SOURCES/memcached-3.0.3.tgz<br/><br/>nc + tar 传送整个文件目录:<br/>接受方<br/>nc -l 7788 &#124;tar -zxvf -<br/>发送方<br/>tar -zcvf - dir &#124;nc xx.xx.xx.xx 7788<br/>dir 表示要传送的目录<br/>来自：http://blog.csdn.net/u012333307/article/details/48562829<br/><br/>调试：<br/>-v打印出错信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;接收方：nc -v -l -p 8210 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发送方：nc -v dest_ip 8210<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;注意：使用nc传文件时，需注意操作次序，receiver先侦听端口，sender向receiver所在机器的该端口发送数据。否则发送失败。&nbsp;&nbsp;&nbsp;&nbsp; <br/><br/>来自：http://blog.csdn.net/slvher/article/details/9668749<br/><br/>=====&gt;linux快速复制大量小文件方法 nc+tar(打包为一个压缩文件，再传到对端后解压到指定目录还回来了)&lt;=====<br/>　　1，在需要对大量小文件进行移动或复制时，用cp、mv都会显得很没有效率，可以用tar先压缩再解压缩的方式。 <br/>　　2，在网络环境中传输时，可以再结合nc命令，通过管道和tcp端口进行传输。 <br/>　　nc和tar可以用来快速的在两台机器之间传输文件和目录，比ftp和scp要来得简单的多。 <br/>　　由于nc是一个超轻量的命令，所以一般busybox都会集成它。当一个linux终端，比如linux pda, <br/>　　通过usblan的方式连接到另一台linux主机的时候，这样的嵌入式终端上一般不会集成ftp server, ssh server <br/>　　这样比较笨重的服务，这个时候， nc可能成为唯一的上传手段。 <br/>　　比如将机器A上的mytest目录上传到到机器 B（192.168.0.11）上，只需要： <br/>　　在机器B上，用nc来监听一个端口，随便就好，只要不被占用；并且将收到的数据用tar展开。-l代表监听模式。 <br/>　　[root@server-B ~]#nc -l 4444 &#124;tar -C /tmp/dir -zxf - <br/>　　然后，在A上通过nc和 tar发送test目录。使用一致的4444的端口。 <br/>　　[root@server-A ~]#tar -zcvf - mytest&#124;nc 192.168.0.11 4444 <br/><br/>记得有一次，一台机器内核崩了，后来有位高手用liveCD把机器启动起来，就是用了类似的方法把数据导出来的。<br/>看来基础的知识还是要多掌握一些啊，比如上次提到的links命令，有时候也很有用的 <br/><br/>来自：http://logo32.iteye.com/blog/1564741
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]Linux在CentOS下的nc/ncat命令端口侦听在不同CentOS6/7的rpm包里有变化，linux nc命令传输文件(远程复制文件，传文件。)，linux快速复制大量小文件方法 nc+tar,nc + tar 传送整个文件目录的方法。how-can-i-keep-netcat-connection-open？]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>