doina

一个小菜鸟运维工程师.

jenkins 寻找服务器可用的端口

前言

有些时候需要到服务器上搭建tomcat,既然搭建tomcat那么必然就需要使用到端口,每次都需要到服务器上 netstat -nplt|grep xxxx (Linux)或者 netstat -ano |findstr xxxx(Windows),很是麻烦,所以直接使用jenkins来帮助我们寻找可用的端口,思路如下: 使用nmap工具来扫描端口, 将每次扫描到端口记录到一个文件中,然后根据设置的端口范围来判断端口是否使用,如果没有使用则输出给我们,并把这个端口记录到已使用的端口列表里面,避免端口冲突的问题.

流程图

《jenkins 寻找服务器可用的端口》

参数配置

《jenkins 寻找服务器可用的端口》

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"

执行结果

《jenkins 寻找服务器可用的端口》

点赞

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据