【shell一天一练】检测web服务脚本

109 阅读1分钟

今日小练题目📢

写一个脚本判断你的Linux服务器里是否开启web服务?(监听80端口) 如果开启了,请判断出跑的是什么服务,是httpd呢还是nginx又或者是其他的什么?

优秀作业🤌🏻

#!/bin/bash
#author:xYLiuuuuuu
#date:2024-12-29

what_web() {
        case $1 in
                httpd )
                        echo "跑的是Httpd."
                        ;;
                nginx)
                        echo "跑的是Nginx."
                        ;;
                *)
                        echo "跑的是其它服务,既不是Nginx也不是Httpd."
                        ;;
        esac
}


port_n=`ss -lntp | grep ':80 '|wc -l`
if [ ${port_n} -eq 0 ]; then
        echo "没有开启web服务";
        exit;
fi

ss -lntp|grep ':80 '|awk -F '"' '{print $2}'|sort|uniq > /tmp/web.txt

line=`wc -l /tmp/web.txt|awk '{print $1}'`

if [ $line -gt 1]
then
        for web in `cat /tmp/web.txt`
        do
                what_web $web
        done
else
        web=`cat /tmp/web.txt` 
        what_web $web
fi

rm -f /tmp/web.txt

敲黑板📝

  • grep ':80 '加空格是为了排除类似8080这样的行
  • sort|uniq