Linux shell 批量验证端口连通性
工作中会遇到验证到某某服务器端口是否连通,如果IP或端口多时,用shell还是很省时省力的,看下面的脚本:
#!/bin/bash
#
#database check
#set -o nounset
LOCALIP=`ifconfig | grep inet | head - | awk '{print $2}' | sed 's/addr\://'`
IPLIST='192.168.161.234
192.168.161.235
192.168.161.22
'
PORTLIST='1521 1522 1523 1524 1525 1526 1527 1528 1529 1530'
check_nc(){
for CHECK_IP in $IPLIST
do
for CHECK_PORT in $PORTLIST
do
nc -nz -w $CHECK_IP $CHECK_PORT
if [ $? -eq ];then
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
else
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
fi
done
done
}
check_nc_7(){
for CHECK_IP in $IPLIST
do
for CHECK_PORT in $PORTLIST
do
nc -n -w $CHECK_IP $CHECK_PORT < /dev/null
if [ $? -eq ];then
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
else
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
fi
done
done
}
check_telnet(){
for CHECK_IP in $IPLIST
do
for CHECK_PORT in $PORTLIST
do
echo -e "\n"| telnet $CHECK_IP $CHECK_PORT | grep Connected
if [ $? -eq ];then
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected"
else
echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected"
fi
done
done
}
echo "--------------------------------------"
echo "execution time : `date`"
echo "--------------------------------------"
echo "Home ip : $LOCALIP"
echo "--------------------------------------"
which nc > /dev/null
if [ $? -eq ];then
echo "------------------nc------------------"
echo "--------------------------------------"
cat /etc/redhat-release |grep 'release 7' > /dev/null
if [ $? -eq ];then
check_nc_7
else
check_nc
fi
else
which telnet > /dev/null
if [ $? -eq ];then
echo "-----------------telnet----------------"
check_telnet
fi
fi
此脚本考虑了nc及telnet命令,及nc在redhat 7中应用的不同。可以直接复制使用,只要修改一下IP和端口。
Linux shell 批量验证端口连通性的更多相关文章
- linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)
本文中的脚本适用范围: 1)检测某些IP地址是否被占用: 2)检测网络中某些设备是否存活: 3)在分配新的ip地址之前,批量检测环境中是否存在冲突的机器 以上检测基于ICMP Ping报文,要求所有的 ...
- Linux shell批量执行scp脚本工具
转载: linux shell + expect:批量scp脚本工具 2011-09-13 15:51:06 分类: Python/Ruby 最近在准备一个部署的任务,其中有一 ...
- windows和linux系统下测试端口连通性的命令
0. ping 1. telnet 2. ssh 3. curl 4. wget 5. tcping 6. 总结 本文地址: https://www.cnblogs.com/hchengmx/p/12 ...
- Linux环境测试机器端口连通性
生产中,有很大一部分的问题都是由于不同机器间网络不同导致的,那么如何判断两台机器之间的连通性?本文介绍几种常见的方式: telnet方法wget方法ssh方法curl方法1. telnet方法格式:t ...
- Linux Shell 批量更换文件名或后缀名
把下列所有.c的文件名修改为.cc rename .c .cc *.c
- Linux shell 批量运行jmeter脚本
第一版,这些代码有点问题,需要继续更改 #!/bin/bash jmxpath= reportpath= timestamp=$(date +%Y%m%d_%H%M%S) echo timestamp ...
- 使用 PsPing & PaPing 进行 TCP 端口连通性测试
PsPing & PaPing 介绍 通常,我们测试数据包能否通过 IP 协议到达特定主机时,都习惯使用 ping 命令.工作时 ping 向目标主机发送一个 IMCP Echo 请求的数据包 ...
- 【虚拟机-虚拟网络】使用 PsPing & PaPing 进行 TCP 端口连通性测试
PsPing & PaPing 介绍 通常,我们测试数据包能否通过 IP 协议到达特定主机时,都习惯使用 ping 命令.工作时 ping 向目标主机发送一个 IMCP Echo 请求的数据包 ...
- Linux shell利用sed如何批量更改文件名详解[转载]
需求背景: 目录A用来存放自动化的包生成的apk文件,现在开发修改了包名的 命名规则:环境名称(pro|uat)-release-日期-v版本号.apk 原来的是思路是通过正则表达式匹配新的包名,但 ...
随机推荐
- Mysql 5.7安装与配置-默认密码
Mysql下载 官方下载路径:https://dev.mysql.com/downloads/mysql/ 网盘下载(windows 32-64): 链接:https://pan.baidu.com/ ...
- async await task.Result 卡死
在如下代码中: public async Task<string> GetData() { return await DoWork(); } 在UI线程中调用 var data = Get ...
- 微信小程序 API 数据缓存
微信小程序 数据缓存 (类似于 cookie) wx.setStorage() 将数据存储在本地缓存中制定的 key 中.会覆盖掉原来该 key 对应的内容,数据存储生命周期跟小程序本身一致,即除用户 ...
- leetcode 113 path Sum II 路径和
递归先序遍历+vector<int>容器记录路径 /** * Definition for a binary tree node. * struct TreeNode { * int va ...
- Putty - 免用户名密码登录
打开 Putty 时携带 -pw your_password your_username@your_host 参数即可.
- 阶段3 1.Mybatis_09.Mybatis的多表操作_2 完成account表的建立及实现单表查询
mybatis中的多表查询: 示例:用户和账户 一个用户可以有多个账户 一个账户只能属于一个用户(多个账户也可以属于同一个用户) ...
- 九:flask-response响应
1.如果返回的是个合法的响应对象,则直接返回 同时,也可以在response里面做一些操作,比如增加cookie 2.如果返回的是一个字符串,那么flask会重新创建一个werkzeug,wrappe ...
- Delphi Tokyo 10.2.3发布了
Delphi Tokyo 10.2.3发布了 http://blog.sina.com.cn/s/blog_44fa172f0102wwwg.html (2018-03-14 07:51:32) 转载 ...
- java 发送 http post 和 get 请求(利用unirest)
调用服务器端的接口在前端调用,但是我们也会经常遇到在服务器后端调用接口的情况,网上的例子大部分都是用 jdk 原生的 URL realUrl = new URL(url); URLConnection ...
- Golang基础(4):Go结构体
当我们要表示同一种数据类型时候,可以用到数组,切片和字典. 当我们要表示不同的数据类型呢?这时候就要用到结构体了 一:定义struct 关键字 type 和 struct 来定义结构体 type st ...