linux系统端口使用查看,与验证端口是否冲突
来源:互联网 发布:超级淘宝系统王铁柱 编辑:程序博客网 时间:2024/06/16 13:13
Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。下图是显示当前系统部分端口使用情况:
![](http://img.my.csdn.net/uploads/201301/04/1357306050_5993.jpg)
不同协议相同端口使用并不冲突;所以我们要只获得TCP或UDP协议的的端口情况:
![](http://img.my.csdn.net/uploads/201301/04/1357306424_5122.jpg)
上图是TCP端口使用情况,通过使用管道和 egrep 命令。在上图显示中可以看出端口显示在每行的第四列,那么先获得第四列:
![](http://img.my.csdn.net/uploads/201301/04/1357306691_6184.jpg)
观察上图端口的情况,都在每行的最后一个,当时每行的:个数又不相同,这次我们只能使用下面这个命令 echo ${var##*:} 来获得所有的端口,所有可以写个函数来获得
# is_valid_tcp_port $1
# return 0 表示不冲突,return 201 冲突
is_valid_tcp_port (){ for i in `netstat -lnp | egrep '^(tcp).*' | awk '{ print $4 }'` do local tmp=`echo ${i##*:}` if [ "$1" = "$tmp" ] then return 201 fi done return 0}
但是在使用时要注意了
if is_valid_tcp_port "$console_port"then .........1.........else ...........2.....fi
当return 0 时会 1 ;return 201时会 2;这个可以看下前面的SHELL函数的参数和返回值介绍,
链接:点击打开链接