首页 > 其他 > 详细

脚本中批量处理远程主机的端口是否打开

时间:2017-02-23 14:37:01      阅读:215      评论:0      收藏:0      [点我收藏+]

    上午接到任务,将来业务上线前,要求我们先做一下我们系统业务与其他系统业务的连通性测试。包括ping测试(网络是否连通)、端口是否打开。领导给的意见是使用telnet,因为之前他们的业务也是这样测试的,但是他具体的细节忘了。要求我完成一个脚本实现该功能。

    当然,大家都知道ping测试只能测网络是否可达,但是具体的端口是否开发是无法用ping测试的。我就先去使用telnet去实现。由于我只是想通过使用telnet来实现判断,并不想真正去做登录端口。

在我做实验时,变出现了以下的问题

 技术分享     我必须再次输入quit才能退出。这对于批量处理来说简直是崩溃的。后来求助网友,有人说可以使用nc。这个我是知道可以的,因为我自己上网搜索也有人这样使用。但是我们环境的要求,不能随便安装软件,并且还要审批,非常复杂。再加上领导以前确实是通过telnet实现的。我也相信telnet确实可以实现,只不过我不知道。后来我就去查看man telnet。最后,实践着实践着。就发现。我可以这样:

[root@centos6~]#echo q|telnet -e ‘q‘ 192.168.0.103 22

Telnet escape character is ‘q‘.

Trying 192.168.0.103...

Connected to 192.168.0.103.

Escape character is ‘q‘.


telnet> Connection closed.

[root@centos6~]#echo q|telnet -e ‘q‘ 192.168.0.103 22 > /dev/null

[root@centos6~]#echo $?

0

技术分享

    再来看,telnet 一个没有打开的端口。这样我就可以无需登录某端口实现判断其是否开放。

[root@centos6~]#echo q|telnet -e ‘q‘ 192.168.0.103 222 > /dev/null 

telnet: connect to address 192.168.0.103: No route to host

[root@centos6~]#echo $?

1

    现在来看,我已经解决了telnet的问题,那么就好说了。

    我脚本的思路首先是通过ping来判断网络通不通,再次使用telnet来判断端口是否打开。

    现在复习一下ping命令,简单说一下ping -c 10 -i 0.2 192.168.0.103,向192.168.0.103发送间隔为0.2s,总数为10个的报文。每个系统的最小间隔可能不同,有时需要调整改值。还有一个叫nc的命令也可以很好地判断端口是否开放。如:nc -z 192.168.0.103 22 

    这个网站http://www.cnblogs.com/peida/archive/2013/03/06/2945407.html可以为大家详细了解该命令。

本文出自 “小小知识库” 博客,请务必保留此出处http://babyhanggege.blog.51cto.com/11741640/1900359

脚本中批量处理远程主机的端口是否打开

原文:http://babyhanggege.blog.51cto.com/11741640/1900359

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!