网络命令-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