网站制作视频教程新手必看,深圳建网站哪个公,wordpress侧边栏写进小工具里,成都校园兼职网站建设目 录
一、要求
二、解决方案
#xff08;一#xff09;解决思路
#xff08;二#xff09;方案
三、脚本程序实现
#xff08;一#xff09;脚本代码和解释
1、脚本代码
2、代码解释
#xff08;二#xff09;脚本验证
1、脚本编辑
2、给予执…目 录
一、要求
二、解决方案
一解决思路
二方案
三、脚本程序实现
一脚本代码和解释
1、脚本代码
2、代码解释
二脚本验证
1、脚本编辑
2、给予执行权限
3、运行脚本查看效果
四、扩展 一、要求 一般我们做linux系统中的应用程序会用到不同的网络端口有时候一个应用会用到很多端口。比如我们常见的流媒体平台由于有很多用户会接入进来所以用到的接口成千上万都有可能。 那么如何查看主机上的所有关心的端口的状态以便进一步的进行分析、维护呢 二、解决方案
一解决思路 通过查询指定的端口若端口能够访问或者能够跟端口建立连接说明端口是处于开放的状态否则端口是关闭的。
二方案 1配置需要了解的所有端口 2 遍历每个端口查看端口是否可用 3若端口可用打印端口是开放的否则打印出信息端口是关闭的。 三、脚本程序实现 直接把脚本写出来分享给大家。
一脚本代码和解释
1、脚本代码 由于我的环境是centos7.9编写如下bash代码可以在centos7及其以后版本运行如下
#!/bin/bash
HOST$1
PORTS22 25 80 3306 8080 26088 26089
for PORT in $PORTS; do(nc -z -w5 $HOST $PORT) /dev/nullif [ $? -eq 0 ]; thenecho $PORT is opening.....elseecho $PORT closefi
done2、代码解释 脚本的功能是检查指定主机上的多个端口是否开放。 解释如下
1HOST$1 这行代码将脚本的第一个参数$1赋值给变量 HOST。当你运行这个脚本时你需要提供一个主机名或 IP 地址作为参数。
2PORTS22 25 80 3306 8080 26088 26089 这行代码定义了一个字符串变量 PORTS它包含了多个要用来检查的端口号这些端口号由空格分隔。
3for PORT in $PORTS; do 这是一个 for 循环的开始它会遍历 PORTS 变量中的每一个端口号并将每个端口号临时赋值给变量 PORT。
4(nc -z -w5 $HOST $PORT) /dev/null 这行代码使用 ncnetcat命令来尝试建立到指定主机和端口的连接。若本机没有安装netcat可以使用yum install netcat 在centos中进行安装。 -z 参数告诉 nc 只在扫描端口时使用而不发送任何数据。 -w5 参数设置了等待连接的超时时间为 5 秒。 /dev/null 将命令的标准输出和标准错误都重定向到 /dev/null这意味着任何输出或错误信息都不会在终端上显示。
5if [ $? -eq 0 ]; then 这行代码检查上一个命令即 nc 命令的退出状态。$? 是一个特殊的变量用于存储上一个命令的退出状态。如果 nc 命令成功连接到端口即端口是开放的它会以状态码 0 退出。
6echo $PORT is opening..... 如果 nc 命令成功即端口开放这行代码会输出该端口的状态信息。
7else 这是 if 语句的 else 部分它会在 nc 命令失败时执行。
8echo $PORT close 如果 nc 命令失败即端口关闭这行代码会输出该端口的状态信息。
9fi 这行代码标志着 if 语句的结束。
10done 这行代码标志着 for 循环的结束。 二脚本验证
1、脚本编辑 使用编辑器比如vi把代码输入进去 保存这个脚本到一个文件中比check_port.sh
2、给予执行权限 chmod x w check_port.sh 3、运行脚本查看效果 可以运行这个脚本来检查进程的运行情况如下
[rootlocalhost home]#
[rootlocalhost home]# ll
总用量 12
-rwxr-xr-x 1 root root 260 3月 3 13:24 check_port.sh
-rw-r--r-- 1 root root 76 3月 2 23:11 host.txt
-rwxr-xr-x 1 root root 547 3月 2 23:11 select_host.sh
[rootlocalhost home]#
[rootlocalhost home]#
[rootlocalhost home]# sh check_port.sh localhost
22 is opening.....
25 is opening.....
80 close
3306 is opening.....
8080 close
26088 is opening.....
26089 is opening.....
[rootlocalhost home]#四、扩展 在实际使用中 可能还要查看其他端口直接在脚本文件添加即可若需要查看多个host的情况可以修改脚本或者直接在命令中添加多个host即可。