一、nc命令检测端口的用法

# nc -v -w 10 %IP% -z %PORT%

-v 显示指令执行过程。
-w <超时秒数> 设置等待连线的时间。
-u 表示使用UDP协议
-z 使用0输入/输出模式,只在扫描通信端口时使用。

例1:扫描指定的8080端口
# nc -v -w 10 -z 192.168.0.100 8080
Connection to 192.168.0.100 8080 port [tcp/http] succeeded!

例2:扫描20到25的端口范围,并详细输出。
# nc -v -w 2 -z 192.168.0.100 20-25
nc: connect to 192.168.0.100 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.0.100 port 21 (tcp) failed: Connection refused
Connection to 192.168.0.100 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.0.100 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.0.100 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.0.100 port 25 (tcp) failed: Connection refused

例3:扫描1到65535的端口范围,只输出打开的端口(去掉-v参数即可)
# nc -w 1 -z 192.168.0.100 1-65535
Connection to 192.168.0.100 22 port [tcp/ssh] succeeded!
Connection to 192.168.0.100 80 port [tcp/http] succeeded!
Connection to 192.168.0.100 2121 port [tcp/scientia-ssdb] succeeded!
Connection to 192.168.0.100 4004 port [tcp/pxc-roid] succeeded!
Connection to 192.168.0.100 8081 port [tcp/tproxy] succeeded!
Connection to 192.168.0.100 11211 port [tcp/*] succeeded!

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

1、假如我们要监控一堆指定的IP和端口,可新建一个文件(第1列服务器IP,第2列要监控的端口)。
# vim /scripts/ip-ports.txt

192.168.0.100 80
192.168.0.100 8081
192.168.0.101 8082
192.168.1.100 21
2、我们可以写这样一个脚本来批量检测端口是否开放:
# 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
3、执行脚本查看运行结果如下:
# chmod a+x /scripts/ncports.sh
# /scripts/ncports.sh
192.168.0.100 80:ok
192.168.0.100 8081:ok
192.168.0.101 8082:ok
192.168.1.100 21:fail

3、端口不通时发送邮件并消息弹窗告警的脚本如下:
# vim /scripts/ncports.sh

#!/bin/bash
#检测服务器端口是否开放,成功会返回0值,打不开会返回1值
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
echo ”服务器 $line 端口不通,请尽快处理!” | mail -s ”【机房监控】服务器$line端口不通” xxx@xxx.com

fi
done
4、加入任务计划每2分钟执行一次

# crontab -e

*/2 * * * * /scripts/ncports.sh > /dev/null 2>&1

linux监控命令nc用法的更多相关文章

  1. Linux tar命令高级用法——备份数据

    Linux tar命令高级用法——备份数据 2015-12-31 Linux学习 Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件 ...

  2. [转帖]Linux date命令的用法(转)

    Linux date命令的用法(转) https://www.cnblogs.com/asxe/p/9317811.html 1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与 ...

  3. Linux find命令的用法实践

    一.find命令简介 Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大 ...

  4. Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no c ...

  5. Linux date命令的用法(转)

    1.命令:date 2.命令功能:date 可以用来显示或设定系统的日期与时间. 3.命令参数 -d<字符串>:显示字符串所指的日期与时间.字符串前后必须加上双引号: -s<字符串& ...

  6. linux监控命令全覆盖(图文说明)

    1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...

  7. Linux监控命令整理(top,free,vmstat,iostat,mpstat,sar,netstat)

    1.1 top 1.1.1 命令说明 Top 命令能够实时监控系统的运行状态,并且可以按照cpu.内存和执行时间进行排序 1.1.2 参数说明 命令行启动参数: 用法: top -hv | -bcis ...

  8. Linux监控命令之==>sar

    一.使用说明 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及 ...

  9. linux useradd 命令基本用法

    在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观.以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作.本文主要描述笔者在学习使用 usera ...

随机推荐

  1. AngularJs学习第一课 Hello World

    首先先介绍一下:AngularJS是干什么的. AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了 ...

  2. Hibernate框架(未完待续······)

        作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编 ...

  3. Mondrian – 开源的矢量图形 Web 应用程序

    Mondrian 是一个免费矢量图形 Web 应用程序,类似 Adobe Illustrator 或 Inkscape.Mondrian 提供所有所需的工具来创建.修改和导出简单的 SVG 文件,过历 ...

  4. android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习

    跑马灯效果 1.用过属性的方式实现跑马灯效果 属性:                  android:singleLine="true" 这个属性是设置TextView文本中文字 ...

  5. svn(http)

    对于有些公司的运维  他确实很垃圾   所以  你一定要谨记这一点!!!

  6. iOS中响应者链条-触摸事件

    总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -& ...

  7. Swfit 字符与字符串

    Swfit 字符与字符串 OC 定义字符 char charValue = 'a'; Swift 定义字符 var charValue:Character = "a" Unicod ...

  8. HTML5 初步了解

    这是HTM5L的第一篇博客. 那么就让我们简单的了解HTML5的语法吧. (HTML5运行环境要求极低,非关键地方就不做截图了) <!--根标签--> <html> <! ...

  9. C语言的结构体和C++结构体的区别

    关于C++中声明结构体中需要使用构造器创建实例对象的语法: <C++的结构体构造方法的基本概念:结构体的构造方法需要和结构体的名字相同,并且无返回值,也不要void关键字,这样的方法就是构造器的 ...

  10. zend studio 使用总结

    1 修改中文字体打开zend studio -> Window -> Preferences -> General -> Apperance -> Colors and ...