From Linuxintro

netcat lets you stream data over a network connection. This has several usecases:

hard drive cloning

Let's say you have two machines of similar configuration and you want to clone the hard drive of one over to the other; you want to copy the "template" machine to a "target" machine. Given that both machines are online and the target machine has an IP of you can do this:

On the target machine <source>

$ nc -l -p 8000 | dd of=/dev/hda1


The target machine is now listening on port 8000. Anything it receives it will write to the first partition of the first drive (hda1).

On the template machine <source>

$ dd if=/dev/hda1 | nc 8000


The first partition of the template machine is read and piped to netcat, which sends it to the IP address and correct port of the target machine.

If you use this technique don't forget the Master Boot Record. You can copy it with: <source>

$ dd if=/dev/hda bs=446 count=1


snmp monitoring with UDP

You can also monitor network traffic by using netcat as data consumer. To listen to snmp's trap communication via UDP set up a SNMP trap receiver using <source>

netcat -u -l 162 | hexdump -C


See also