- 浏览: 7951753 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
http://huangrs.blog.51cto.com/2677571/967512
最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理。批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了。在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现。
一、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
三、端口不通时设置告警:
1、 邮件告警:
(1) 先安装linux下面的邮件发送程序mutt(参见我另一篇文章《Linux下面如何用mutt命令发送邮件》
(2) 修改上面的ncports.sh检测脚本,在显示失败fail的时候增加一行:
……………………
echo $line :fail
echo "服务器 $line 端口不通,请尽快处理!" | mutt -s "【机房监控】服务器$line端口不通" test@139.com
……………………
(3) 如果上面的接收邮箱设置为移动139邮箱,并开启接收邮件短信告知,即可实现“短信告警”的功能。
2、 windows消息弹窗告警:
(1) 先打开接收消息弹窗windows客户机的“Messenger”服务,设置为“启动”
(2) 利用smbclient命令来发送消息,net脚本文件如下:
# vim /scripts/net.sh
#!/bin/bash #/scripts/net.sh case "$1" in send) echo "$3"|smbclient -I "$2" -M `nmblookup -A "$2"|sed -e '1d' -e '3,/*/d'|cut -f2|cut -d' ' -f1` ;; *) echo "Usage:net send <IPaddr.> <message>" exit 1 esac # chmod a+x /scripts/net.sh
(3) 发送消息弹窗命令测试:(发送给192.168.1.83这台win xp机子,发送内容不支持中文)
# /scripts/net.sh send 192.168.1.83 "hello,nihao"
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 端口不通,请尽快处理!" | mutt -s "【机房监控】服务器$line端口不通" test@139.com /scripts/net send 192.168.1.83 "The $line fail" fi done 4、加入任务计划每2分钟执行一次
# crontab -e
*/2 * * * * /scripts/ncports.sh > /dev/null 2>&1 # service crond restart
最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理。批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了。在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现。
一、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
三、端口不通时设置告警:
1、 邮件告警:
(1) 先安装linux下面的邮件发送程序mutt(参见我另一篇文章《Linux下面如何用mutt命令发送邮件》
(2) 修改上面的ncports.sh检测脚本,在显示失败fail的时候增加一行:
……………………
echo $line :fail
echo "服务器 $line 端口不通,请尽快处理!" | mutt -s "【机房监控】服务器$line端口不通" test@139.com
……………………
(3) 如果上面的接收邮箱设置为移动139邮箱,并开启接收邮件短信告知,即可实现“短信告警”的功能。
2、 windows消息弹窗告警:
(1) 先打开接收消息弹窗windows客户机的“Messenger”服务,设置为“启动”
(2) 利用smbclient命令来发送消息,net脚本文件如下:
# vim /scripts/net.sh
#!/bin/bash #/scripts/net.sh case "$1" in send) echo "$3"|smbclient -I "$2" -M `nmblookup -A "$2"|sed -e '1d' -e '3,/*/d'|cut -f2|cut -d' ' -f1` ;; *) echo "Usage:net send <IPaddr.> <message>" exit 1 esac # chmod a+x /scripts/net.sh
(3) 发送消息弹窗命令测试:(发送给192.168.1.83这台win xp机子,发送内容不支持中文)
# /scripts/net.sh send 192.168.1.83 "hello,nihao"
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 端口不通,请尽快处理!" | mutt -s "【机房监控】服务器$line端口不通" test@139.com /scripts/net send 192.168.1.83 "The $line fail" fi done 4、加入任务计划每2分钟执行一次
# crontab -e
*/2 * * * * /scripts/ncports.sh > /dev/null 2>&1 # service crond restart
发表评论
-
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3110微软提供了不少命令行 ... -
挂载文件系统选项nodiratime、noatime等集合小结
2018-06-02 19:56 2672Linux系统文件有三个主 ... -
Linux如何查看当前占用CPU或内存最多的K个进程
2018-05-20 11:01 3302内存 可以使用以下命令查使用内存最多的K个进程 方法1: p ... -
(转)使用frp实现内网穿透
2018-05-14 13:33 2431https://www.jianshu.com/p/e8e26 ... -
docker小结1
2018-05-11 14:26 4871 通过dockerfile建立一个简单的HELLO.C,然后 ... -
LINUX下EPOLL等不错的文章收藏
2018-04-25 09:35 5691 通俗讲解 异步,非阻塞和 IO 复用 https:/ ... -
Ubuntu中root用户和user用户的相互切换
2018-04-06 12:46 10351)从user用户切换到root用户 不管是用图形模式登录U ... -
ubuntu下Virtualbox虚拟Ubuntu共享文件夹设置
2018-04-06 11:41 10141. 安装增强功能包(Guest Additions) 安装 ... -
Web网站压力及性能测试
2017-10-09 19:59 701https://segmentfault.com/a/1190 ... -
工具推荐:Netdata,Linux性能实时监测工具
2017-07-14 09:10 1178工具推荐:Netdata,Linux性能实时监测工具 http ... -
一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知
2017-07-11 07:07 1654一个 Linux 下基于 Bash 的文件和数据库监控及备份工 ... -
收藏个不错的能发送日志等警告信息等到微信的工具
2017-06-11 10:12 1081发现个将比如报警日志呀之类的提醒信息,发送给微信的好的工具,不 ... -
收藏:nginx教程从入门到精通(ttlsa出品)
2017-02-09 22:53 733http://www.ttlsa.com/nginx/ngin ... -
(转)从dstat理解Linux性能监控体系
2016-08-02 10:27 2583http://calvin1978.blogcn.com/ar ... -
linux下安装SZ,RZ命令
2016-02-26 20:59 1667在 linux 下,一般用secur crt等工具,今天居然 ... -
Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包
2014-11-14 09:12 1766Clumsy —— 帮你模拟各种网络不稳定的环境,包括掉包、延 ... -
ping+tracerout的unix下网络诊断小工具mtr
2014-07-29 22:04 1605今日才发现,原来linux中可以用ping和tracerout ... -
(转)Apache日志分割
2014-02-25 20:20 1616Apache和Ngix一样,对日志没有进行分割处理,这样很不方 ... -
linux下 cpu频率节能
2014-02-25 13:06 1443参考: http://linux-wiki.cn/wiki/z ... -
(转)最佳日志实践
2014-01-22 23:24 958http://www.bitstech.net/2014/01 ...
相关推荐
### Linux利用nc命令监控服务器端口的方法 #### 一、nc命令简介与基本用法 nc(Netcat)是一款强大的网络工具,它提供了一个简单的方式来读取和写入网络连接,支持TCP和UDP协议。nc命令可以用于创建监听端口、发送...
nc-ports.sh: (主文件)内包含检测ip 端口是否存在,存在返回ip 端口:ok,不存在返回ip 端口:fail并写到同级目录中的日志里;还有检测failif脚本中输出的fail失败,如果有失败,则会返回ip 端口及服务名称,并...
在本文中,我们将详细介绍如何利用nc(netcat)命令在Linux环境下进行系统提权。提权是指在获取了系统的一个非管理员账号后,使用特定的技术手段提升权限,获得系统管理员或root权限的过程。本文的示例针对的是Linux...
代码如下: #!/bin/bash port=”80″ restart=”/etc/init.d/httpd restart” EMAIL=”/bin/echo selboo | mutt -s “重新启动...$EMAIL exit $? } exit 0 您可能感兴趣的文章:linux使用管道命令执行ps获取cpu与内
此外,对于错误日志的检查,开发者需要访问服务器的系统日志(例如Linux的/var/log/目录下的各种日志文件)或应用日志,然后通过解析日志内容来识别网络相关的问题。 总之,检测服务器网络状态代码是IT运维中的基础...
- `top`:实时监控系统资源使用情况,包括CPU和内存占用。 - `kill`和`killall`:发送信号到进程,停止或重启进程。 - `nohup`:让命令在后台持续运行,即使用户退出终端。 5. **网络命令** - `ping`:测试网络...
同时,监控服务器的CPU、内存、磁盘I/O和网络带宽使用情况,找出性能瓶颈。此外,还可以通过调整TCP参数,如`tcp_congestion_control`、`net.ipv4.tcp_no_metrics_save`、`net.ipv4.tcp_tw_reuse`等,优化服务器性能...
1.Windows 开启端口监听 Windows本身是不支持 nc 端口监听的。但是我们可以通过下载 netcat 来是解决这个问题。下载地址:netcat 下载后,进行解压,并将解压后目录下的... Linux 开启端口监听,也是使用nc命令
在Linux操作系统中,掌握一些基本的命令行工具是至关重要的,尤其对于开发者和系统管理员而言。以下将详细解析“Linux必学的60个命令”所...所以,对于想要在Linux环境下工作的人来说,这些命令的掌握是必不可少的。
Linux操作系统以其开源、稳定和强大的特性,被广泛应用于服务器、云计算和嵌入式系统等领域。对于运维人员来说,熟练掌握Linux命令行操作是至关重要的。本资料“Linux常用命令大全”详细汇总了Linux环境中最常用的...
2. `top`/`htop`:实时监控系统资源使用情况。 3. `kill`/`pkill`:发送信号结束进程,如`kill -9 pid`。 4. `systemctl`:在Systemd系统中管理服务,如`systemctl start service`。 5. `sudo`:以管理员权限执行...
- `top`或`htop`:实时监控系统资源使用情况和进程状态。 - `ps`:查看当前用户的进程信息。 - `kill`和`pkill`:发送信号结束进程,`-9`强制杀死进程。 - `nohup`:使命令在后台持续运行,即使用户注销也不会...
对于IT专业人员来说,理解和掌握串口服务器的使用和配置至关重要,特别是在构建网络化的工业自动化、物联网(IoT)或监控系统时。正确安装和配置NC601串口服务器驱动,可以确保串行设备在网络环境中的稳定运行,提升...
"Linux命令详解手册"提供了全面的命令指南,帮助用户理解和运用各种命令来高效地操作Linux系统。下面将详细阐述Linux命令的主要类别及其重要用途。 1. 文件和目录管理: - `ls`:列出目录内容,常用于查看当前目录...
2. `top`:实时监控系统资源使用情况,包括CPU和内存占用。 3. `ps`:查看当前系统进程状态,`ps aux` 列出所有进程。 4. `kill` 和 `pkill`:结束进程,`kill -9 pid` 强制结束进程,`pkill process_name` 结束指定...
7. **系统和硬件信息**:`uname`提供系统信息,`top`和`htop`实时监控系统资源使用情况,`df`和`du`查看磁盘空间,`free`查看内存使用情况,`lscpu`显示CPU信息,`lsusb`列出USB设备。 8. **包管理和软件安装**:在...
1. `top` 和 `htop`:实时监控系统资源使用情况,如CPU、内存、磁盘I/O等。 2. `df` 和 `du`:分别用于查看磁盘空间使用情况和估算目录或文件所占用的空间。 3. `lsb_release`:显示Linux发行版的信息,如版本号、...
对于Linux程序开发人员和系统管理员来说,熟悉并熟练掌握各种Linux命令是至关重要的。"Linux命令大全"提供了一个全面的参考资源,帮助用户快速查询和理解各种命令的用途和用法。 CHM(Compiled HTML Help)是一种...