linux批量查询端口是否开通

linux批量查询端口是否开通

业务需求:进行新老机器系统切换时,需要验证各个业务系统的端口连通性
分析:当系统对接业务系统过多时,手动验证会花费大量时间,且不方便存储,因此,编写批量程序
代码:

#!/bin/bash


# 检查端口是否可用
function check_port() {
    local hosts=$1
    local ports=$2
    local name=$3
	
	
	# 使用 IFS 分割字符串
	IFS="," read -ra hostArray <<< "$hosts"
	IFS="," read -ra array <<< "$ports"
	
	
	# 使用 for 循环遍历每个机器信息
	for host in "${hostArray[@]}"; do	  
		# 使用 for 循环遍历每个子字符串
		for port in "${array[@]}"; do
		   #开始	
		   #local command="ping -c 1 $host > /dev/null && nc -zvw3 $host $port"
		   local command="nc -zvw3 $host $port"
			if eval "$command"; then
				echo "$name $host $port 联通成功"
			else
				echo "$name $host $port 联通失败"
			fi
		done	
	done
	
   
}


# 获取远程主机列表及其端口列表,按组区分,组内按逗号分隔
remote_hosts=("192.168.1.125" "192.168.1.126,192.168.1.127" )
remote_names=("邮件服务服务器" "redis")
remote_ports=("80,443" "26379")

echo "目标服务器名称 目标IP 端口 联通测试"

# 检查每个远程主机的每个端口是否可用
for ((i=0; i<${#remote_hosts[@]}; i++)); do   
   remote_host=${remote_hosts[i]}
   remote_port=${remote_ports[i]}
   remote_name=${remote_names[i]}
   
   #echo "-----------      验证:${remote_names[i]}机器:${remote_host}端口:${remote_port}是否可用 -----------"
   check_port $remote_host $remote_port $remote_name
done

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值