!
也想出现在这里? 联系我们
广告区块

Linux 端口排查是否被占用的脚本

原来的脚本还有点问题这个应该是没问题了,主要是有些程序是ROOT全权启动的

有道云笔记  https://note.youdao.com/s/YQszX277

Linux 端口排查是否被占用的脚本插图

使用方法:

简单使用 把下面代码保存 PORT-OK.sh 给权限  chmod -R 755 PORT-OK.sh

使用./PORT-OK.sh空格 端口 比如./PORT-OK.sh 8888这个默认是宝塔的

#!/bin/bash
#netstat -lntp
tishitishitishi="如果你的系统拥有ROOT权限"
echo -e "${tishitishitishi} 把保存后的脚本 sudo lsof 替换成lsof也就是不需要sudo \n并且把包含\$USER的行删掉"
echo "${tishitishitishi} 这一行 sudo  \${dockerduankou}/kill/PORT-DATA.log.sh 把sudo删掉"
echo -e "需要管理员权限,请输入开机密码 ${tishitishitishi}请忽略"
date +%Y年%m月%d日%H:%M:%S
#------------------------------------------------------
denden_d="======================================================"
dockerduankou="/tmp/docker-duankou4d6w4wq"
rm -rf ${dockerduankou}
mkdir -p  ${dockerduankou}/kill
#################
# 输出检测端口日志
#################
#端口
PORT_0=$1

duankouA="0"
#应为一些端口是ROOT权限启动的,还有的是用户权限启动的,合并写在一起
sudo lsof -i :${PORT_0} |grep "root"  |awk '{print $2}' >> ${dockerduankou}/0.txt
sudo lsof -i :${PORT_0} |grep "$USER" |awk '{print $2}' >> ${dockerduankou}/0.txt
sudo lsof -i :${PORT_0} >> $HOME/端口占用的程序.txt
#0.txt是0行就是没有被占用
Duankou_LONG_0=$(cat ${dockerduankou}/0.txt | wc -l)
if [[ ! X${duankouA} = X${Duankou_LONG_0} ]];then
 echo "端口 ${PORT_0}已被占用"
 
else
 echo "端口 ${PORT_0}未被占用"
fi

cat ${dockerduankou}/0.txt >> ${dockerduankou}/PORT.log
#去除重复行和空行 应为有些系统没有用户只有系统用户ROOT 这个时候 $HOME 就是root
sort -k2n ${dockerduankou}/PORT.log | awk '{if ($0!=line) print;line=$0}' |awk NF > ${dockerduankou}/PORT-DATA.log
sed -e 's/^/kill -9 /' ${dockerduankou}/PORT-DATA.log > ${dockerduankou}/kill/PORT-DATA.log.sh
rm -rf "$HOME/端口占用的程序.txt"
echo "$HOME/端口占用的程序.txt  如果是空文件就是没有占用的"
####################
# 杀死占用端口的程序
####################
echo "${denden_d}"
杀死占用端口的程序(){
tixing_A=$(echo -e "杀死占用端口的程序 --> 输入大写字母 Y 继续执行脚本!!!\n>:")
while true ; do
read -p "${tixing_A}" var;
  if [ -z $var ];then
   echo "输入不能为空"
   elif [[ ! $var =~ ^[Y]+$ ]];then
   echo "输入的不是字母,请重新输入!"
   else
   chmod -R 755 ${dockerduankou}/kill/PORT-DATA.log.sh
   
   #当满足输入条件时,跳出所有循环
   break;
 fi
done
}
run_sh_wc=$(cat ${dockerduankou}/kill/PORT-DATA.log.sh | wc -l)
if [[ ! X${duankouA} = X${run_sh_wc} ]];then
 
   `杀死占用端口的程序` 
    sudo  ${dockerduankou}/kill/PORT-DATA.log.sh
    echo "OK占用端口已释放!!!"

else
 echo "端口检查通过!!!"
fi
sleep 1
重要声明

本网站的文章部分内容可能来源于网络,如有侵犯你的权益请联系邮箱:west2@qq.com 站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!本站资源大多存储在云盘,如发现链接失效请反馈,我们会及时更新。


       

如果遇到积分购买才可查阅的文章,建议升级会员或者成为认证用户。全站95%资源免费下载”。

给TA打赏
共{{data.count}}人
人已打赏
linux运维网络技巧

Linux桌面操作系统-检测端口的bash脚本

2022-12-4 23:46:28

手游源码

传世手游【龙心吊坠传世骑战版】Linux手工端-安卓-GM授权物品后台-详细视频教程

2022-10-19 1:35:18

2 条回复 A文章作者 M管理员
  1. 淇云博客

    值此新年到来之际,淇云博客祝贵站在新的一年发大财,行大运

  2. 1428

    看看怎能弄得

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
联系我们