shell脚本获取未被占用的端口

#!/bin/bash
–# @Desc 此脚本用于获取一个指定区间且未被占用的随机端口号
-# @Author Hellxz [email protected]

PORT=0
#判断当前端口是否被占用,没被占用返回0,反之1
function Listening {
TCPListeningnum=netstat -an | grep ":$1 " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l
UDPListeningnum=netstat -an | grep ":$1 " | awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l
(( Listeningnum = TCPListeningnum + UDPListeningnum ))
if [ $Listeningnum == 0 ]; then
echo “0”
else
echo “1”
fi
}

#指定区间随机数
function random_range {
shuf -i $1-$2 -n1
}

#得到随机端口
function get_random_port {
templ=0
while [ $PORT == 0 ]; do
temp1=random_range $1 $2
if [ Listening $temp1 == 0 ] ; then
PORT= t e m p 1 f i d o n e e c h o " p o r t = temp1 fi done echo "port= temp1fidoneecho"port=PORT"
}
get_random_port 1 10000; #这里指定了1~10000区间,从中任取一个未占用端口号

参考:https://www.cnblogs.com/hellxz/p/11288745.html

猜你喜欢

转载自blog.csdn.net/xihuanyuye/article/details/103904866