netcat使用参考
2011-03-24 19:24
197 查看
如果您需要装配一系列有相同配置的Linux计算机,其中的一个解决方案是使用dd和netcat在网络上对服务器进行克隆。
结合使用netcat和tar
Netcat被称为Linux上的瑞士军刀,这意味着可以使用它做很多事情。您可以用netcat在一台计算机上开启一个端口,并通过那个端口以管道的形式从另一台计算机获取数据。例如,像下面结合netcat和tar的例子命令所示,您可以轻松地拷贝一个目录的内容。在接收端的计算机上,启动一个netcat监听进程。下面的命令告诉netcat监听端口1968,并将从该端口接收的数据管道传送给tar x命令,以便从归档文件中解出文件。
netcat -l -p 1968 | tar x
连接的另一端是netcat接收者。在这个例子中,它是一个创建归档文件并通过netcat管道传送给目标主机的命令:
tar c . | netcat 10.0.0.10 1968
这个命令的第一部分对当前目录的内容开启了一个tar归档任务,第二部分则将结果发送到在主机10.0.0.10端口1968上监听的netcat。
结合使用tee和netcat命令实现组播
您已经看到,netcat是将文件从一台计算机传送到另一台计算的一个简单方法。但这个方法存在一个缺点,该命令不支持组播。也就是说您不可以在多台计算机上开启netcat作为监听者,并让一台计算机将数据发送到组播端口。但是,您可以使用工作区并在一个netcat链里连接多台计算机。我们假设有10台计算机。您想要将10.0.0.10上的一些iso文件通过网络发布到IP地址为10.0.0.11到10.0.0.20的主机上。首先,您需要在所有的计算机上准备一个netcat会话,然后在存有iso文件的计算机上执行下面的命令:
tar c . | netcat 10.0.0.11 1968
这个命令将归档的tar文件发送到10.0.0.11。这时,在10.0.0.11上需要有一个netcat进程来等待传入的数据,并从tar管道中解出数据。与此同时,如果还需要将数据发送到另一台计算机,您可以使用tee命令。使用tee命令,您可以在一个管道的输出上再执行两个命令。如下面的命令所示:
netcat -l -p 1968 | tee > (tar x) | netcat 10.0.0.12 1968
正如您所看到的,通过tee命令和输出重定向,数据被发送到tar x以被解出。同时,会发送数据到IP地址为10.0.0.12的计算机,该计算机上必须有一个netcat进程在监听端口1968。从而,在那台计算机上,也有一个netcast进程在等待传入的数据。
netcat -l -p 1968 | tee (tar x) | netcat 10.0.0.13 1968
在netcat链上一直重复执行这个过程,直到最后一台IP地址为10.0.0.20的计算机。在这台计算机上,您只要有netcat监听传入的数据并直接将数据发送到tar进程。因此,在10.0.0.20上,执行下面的命令进行等待:
netcat -l -p 1968 | tar x
您必须从10.0.0.20上的监听器开始,启动这个类似于序列的组播,然后,在10.0.0.19上输入命令,并一直往前到10.0.0.10上的netcat发送者。您会看到文件很快地被拷贝到链上的所有机器里。但是,这只是一个测试。一旦确认在您的Linux上有效,您就可以正式进行工作,并用这个方法将一个镜像分发到多台计算机上。
本文转自:
http://www.ylmf.net/linux/tips/2010121715906.html
结合使用netcat和tar
Netcat被称为Linux上的瑞士军刀,这意味着可以使用它做很多事情。您可以用netcat在一台计算机上开启一个端口,并通过那个端口以管道的形式从另一台计算机获取数据。例如,像下面结合netcat和tar的例子命令所示,您可以轻松地拷贝一个目录的内容。在接收端的计算机上,启动一个netcat监听进程。下面的命令告诉netcat监听端口1968,并将从该端口接收的数据管道传送给tar x命令,以便从归档文件中解出文件。
netcat -l -p 1968 | tar x
连接的另一端是netcat接收者。在这个例子中,它是一个创建归档文件并通过netcat管道传送给目标主机的命令:
tar c . | netcat 10.0.0.10 1968
这个命令的第一部分对当前目录的内容开启了一个tar归档任务,第二部分则将结果发送到在主机10.0.0.10端口1968上监听的netcat。
结合使用tee和netcat命令实现组播
您已经看到,netcat是将文件从一台计算机传送到另一台计算的一个简单方法。但这个方法存在一个缺点,该命令不支持组播。也就是说您不可以在多台计算机上开启netcat作为监听者,并让一台计算机将数据发送到组播端口。但是,您可以使用工作区并在一个netcat链里连接多台计算机。我们假设有10台计算机。您想要将10.0.0.10上的一些iso文件通过网络发布到IP地址为10.0.0.11到10.0.0.20的主机上。首先,您需要在所有的计算机上准备一个netcat会话,然后在存有iso文件的计算机上执行下面的命令:
tar c . | netcat 10.0.0.11 1968
这个命令将归档的tar文件发送到10.0.0.11。这时,在10.0.0.11上需要有一个netcat进程来等待传入的数据,并从tar管道中解出数据。与此同时,如果还需要将数据发送到另一台计算机,您可以使用tee命令。使用tee命令,您可以在一个管道的输出上再执行两个命令。如下面的命令所示:
netcat -l -p 1968 | tee > (tar x) | netcat 10.0.0.12 1968
正如您所看到的,通过tee命令和输出重定向,数据被发送到tar x以被解出。同时,会发送数据到IP地址为10.0.0.12的计算机,该计算机上必须有一个netcat进程在监听端口1968。从而,在那台计算机上,也有一个netcast进程在等待传入的数据。
netcat -l -p 1968 | tee (tar x) | netcat 10.0.0.13 1968
在netcat链上一直重复执行这个过程,直到最后一台IP地址为10.0.0.20的计算机。在这台计算机上,您只要有netcat监听传入的数据并直接将数据发送到tar进程。因此,在10.0.0.20上,执行下面的命令进行等待:
netcat -l -p 1968 | tar x
您必须从10.0.0.20上的监听器开始,启动这个类似于序列的组播,然后,在10.0.0.19上输入命令,并一直往前到10.0.0.10上的netcat发送者。您会看到文件很快地被拷贝到链上的所有机器里。但是,这只是一个测试。一旦确认在您的Linux上有效,您就可以正式进行工作,并用这个方法将一个镜像分发到多台计算机上。
本文转自:
http://www.ylmf.net/linux/tips/2010121715906.html
相关文章推荐
- 个人使用的.vimrc 供大家参考
- MySQL 直接解压使用参考(做到成功启动服务)
- linux netcat命令使用技巧
- 参考的开源项目中使用Android Support V4, V7, V13等,带来的一堆问题
- ORACLE时间日期格式使用总结(参考网上资料汇总)
- sqlite使用参考网址
- Adobe Scout 使用参考说明
- 今天使用vs2005时候,发现了这个问题“无法附加。绑定句柄无效”。参考下面的图片
- 二. 使用VS2012 Addin参考项目(文件查找项目)
- 为Windows 7 Professional SP1添加任何官方语言包(其他语言可参考使用本教程)
- 关于腾讯QQ2008抵制彩虹QQ解决办法【彩虹QQ照常使用】(仅做参考,现在谁还用08,貌似不能用了吧)
- 7z 命令行使用的压缩和解压的例子及参考内容
- VMware下linux Ubuntu10.04使用NAT共享主机IP上网方式的设置参考
- Spring中使用JDBC做的增删改查,参考意义极大!
- QT:使用“状态模式”绘制界面 参考的一种面向对象的绘制图片的方法
- 5、MySQL 8.0参考手册 3.3.4.9使用多个表
- JBoss4 应用服务器Web开发人员参考手册(10):使用JSF
- 微信API使用参考系列教材
- <android>对NoHttp的封装使用,仅供学习参考
- open flash chart 2 使用参考