如何快速统计网站应用?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者生产环境需要统计站点应用,由于应用数量巨大,于是通过如下脚本实现快速搜索。

2 最佳实践

2.1 创建搜索脚本

mkdir ~/scripts/
vim ~/scripts/tools-findAPP.sh

加入如下代码,

#!/bin/bash

baseURL="http://www.cmdschool.org.cmdschool.org:8080"
wwwRoot="/usr/tomcat/apache-tomcat-6.0.18/webapps"
indexList="index.jsp index.html"

if [ ! -d "$wwwRoot" ]; then
        echo "The wwwroot could not found!"
        exit
fi

cd $wwwRoot

apps="$(
for i in $indexList; do
        index=$i
        find . -name '*'$index -exec echo {} \; | xargs echo
done
)"

appsUrl="$(
for i in $apps; do
        appName=$i
        echo $baseURL'/'`echo $appName | cut -d'/' -f2`"/";
done  | sort -u
)"

for i in $appsUrl; do
        appUrl=$i
        httpCode=`curl -I -m 10 -o /dev/null -s -w %{http_code} $appUrl`
        if [ "$httpCode" = "404" -o "$httpCode" = "503" ]; then
                continue
        fi
        echo $appUrl
done

需要注意的是,
– 第1个“for”循环取得一个应用的名称列表
– 第2个“for”循环取得一个应用的URL列表
– 第3个“for”循环排除掉返回“404”或“503”的应用URL

2.2 搜索站点

bash ~/scripts/tools-findAPP.sh

显示效果如下,

http://www.cmdschool.org.cmdschool.org:8080/it
http://www.cmdschool.org.cmdschool.org:8080/mis
http://www.cmdschool.org.cmdschool.org:8080/ems
#...
没有评论

发表回复

Bash
如何熟悉Base Shell的变量的间接引用?

1 前言 一个问题,一篇文章,一出故事。 笔者希望以一个变量名称去引用另一个变量,于是整理此文。 2 …

Bash
如何实现文件夹路径转纯数字符串?

1 前言 一个问题,一篇文章,一出故事。 由于由于需要设置某目录的配额,配额要求为每个目录指定一个项 …

Bash
如何统计Linux打开文件前10进程?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有台服务最近压力比较大,打开的文件数量不断地往 …