前言
有些时候需要到服务器上搭建tomcat,既然搭建tomcat那么必然就需要使用到端口,每次都需要到服务器上 netstat -nplt|grep xxxx (Linux)或者 netstat -ano |findstr xxxx(Windows),很是麻烦,所以直接使用jenkins来帮助我们寻找可用的端口,思路如下: 使用nmap工具来扫描端口, 将每次扫描到端口记录到一个文件中,然后根据设置的端口范围来判断端口是否使用,如果没有使用则输出给我们,并把这个端口记录到已使用的端口列表里面,避免端口冲突的问题.
流程图
参数配置
shell脚本
#!/bin/bash
# by: baiyongjie -20181029
nmap -p$PortStart\-$PortEnd --open $ServerIP | grep ^[0-9] | awk -F/ '{print $1}' > /data/its/free_port/$ServerIP\_nmap_used_port.txt
seq $PortStart $PortEnd > /data/its/free_port/$ServerIP\_port_list.txt
if [ ! -f /data/its/free_port/$ServerIP\_app_used_port.txt ];then
cat /data/its/free_port/$ServerIP\_nmap_used_port.txt > /data/its/free_port/$ServerIP\_app_used_port.txt
fi
for i in `cat /data/its/free_port/${ServerIP}\_port\_list.txt`
do
grep $i /data/its/free_port/$ServerIP\_app_used_port.txt > /dev/null
if [ $? -ne 0 ];then
echo $i >> /data/its/free_port/$ServerIP\_app_used_port.txt
break
fi
continue
done
echo -e "\n###################################\n"
echo "服务器IP地址: $ServerIP"
echo "服务器可用端口: `tail -1 /data/its/free_port/$ServerIP\_app_used_port.txt`"
echo -e "\n###################################\n"