检测端口的命令、netstat、nmap
//以22端口为例测试 ,grep 端口时,直接输入22会得到其它无关内容,例如221,2201这些端口,通过:22 来实现
[root@localhost shell]# netstat -anp | grep ':22 '
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1868/sshd
tcp 0 0 :::22 :::* LISTEN 1868/sshd
[root@localhost shell]# nmap -p 22 127.0.0.1
Starting Nmap 5.51 ( http://nmap.org ) at 2019-08-29 19:12 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000037s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
[root@localhost shell]# nmap -p 8080 127.0.0.1
Starting Nmap 5.51 ( http://nmap.org ) at 2019-08-29 19:13 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000031s latency).
PORT STATE SERVICE
8080/tcp closed http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
[root@localhost shell]#
使用awk拿到端口的结果
//使用awk拿到端口的结果
[root@localhost shell]# nmap -p 8080 127.0.0.1 |grep 'STATE SERVICE' -A1 | awk '{print $2}'| grep -v 'STATE'
closed
[root@localhost shell]#
剩下的用if进行判断就好了