网络命令nc(二)

继续Netcat 这个命令吧

1:远程拷贝文件

在本地输出 文件debian.img 到 192.168.5.40 主机12345端口监听

nc -v 192.168.5.40 12345 < debian.img

在192.168.5.40 主机12345端口监听,将文件指定为debian-copy.img

nc -l  -v 12345 > debian-copy.img

2. 克隆硬盘或分区

这个命令真的蛮喜欢的,以前备份操作制作好的debian系统,尤其是用dd备份磁盘,例,你可以通过dd ,然后nc 进行网络传输,不需要两次操作

操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。

克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,比如LiveUSB模式,

在server2上进行类似的监听动作:

# nc -l -p 1235 | dd of=/dev/sda(你可以不指定为/dev/sda,可以是任何格式,比如debian.image,这样就把server1 /dev/sda的磁盘拷贝为debian.image)

server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:

# dd if=/dev/sda bs=1M  | nc 192.168.5.40 12345

3:批量检测服务器指定端口开放情况

a:假如我们要监控一堆指定的IP和端口,可新建一个文件(第1列服务器IP,第2列要监控的端口)。
# vim /scripts/ip-ports.txt
192.168.5.100 80
192.168.5.101 80 
192.168.5.102 80 
192.168.5.103 80 
b:我们可以写这样一个脚本来批量检测端口是否开放:
# vim /scripts/ncports.sh
#!/bin/bash
#检测服务器端口是否开放,成功会返回0值显示ok,失败会返回1值显示fail

cat /scripts/ip-ports.txt | while read line
do
nc -w 10 -z $line > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo $line:ok
else
echo $line:fail
fi
done

原文地址:https://www.cnblogs.com/geeker/p/4493471.html