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 原来的是思路是通过正则表达式匹配新的包名,但 ...
随机推荐
- POST上传多张图片配合Django接受多张图片
POST上传多张图片配合Django接受多张图片 本地:POST发送文件,使用的是files参数,将本地的图片以二进制的方式发送给服务器. 在这里 files=[("img",op ...
- Linux下用jar命令更新jar包文件
jar -uvf SDK_Web_ChartReport.war view/global/header.jsp echo '样式文件替换进包中' 查看jar包中的文件: jar -tvf SDK ...
- Linux_Comand - Check disk space
df -h du -sh Delete folder older than 30 days find /path -name "test-*" -type d -mtime +30 ...
- 十三、RF中对json的解析
A.需要安装的库 1.RequestsLibrary,安装命令:pip2 install requests 2.HttpLibrary,安装命令:pip2 install robotframework ...
- iOS应用将强制使用HTTPS安全加密-afn配置https(190926更新)
WWDC 2016苹果开发者大会上,苹果在讲解全新的iOS10中提到了数据安全这一方面,并且苹果宣布iOS应用将从2017年1月起启用名为App Transport Security的安全传输功能. ...
- JS关于this指向的小练习
请阅读以下代码:var obj = {};obj.log = console.log;obj.log.call(console, this)该代码在浏览器中执行,输出的日志结果是什么? 这道题就是问c ...
- C#正则的使用
c#使用正则表达式要用到System.Text.RegularExprssions命名空间 官方API Regex类是用于匹配表达式: 通常Regex分为静态类和实例化俩种方式.那这俩种有什么区别呢, ...
- Quaternions 四元数
四元数是一个乱七八糟得到东西还没搞懂搞懂后再补 先添加unity API transform.rotation 是Quaternionlei类并非Vector3向量 不能进行直接转化 那如何将Vect ...
- 关于在DBGridEh的一个字段使用checkbox的方法 .
在DBGridEh的columns中新增加一个字段 1.如果你选择的数据库字段,则选择checkbox为true,并在keylist中输入0和1,就可以了 2.如果你选择的是一个临时字段,在数据集中新 ...
- C# 实现IDisposable
#region 实现IDisposable public void Dispose() { Dispose(true); GC.SuppressFinalize(this);//防止Finalize调 ...