最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本分析 nginx日志訪(fǎng)問(wèn)次數(shù)最多及最耗時(shí)的頁(yè)面(慢查詢(xún))

 更新時(shí)間:2013年11月19日 22:11:25   作者:  
下面是我在做優(yōu)化時(shí)候,經(jīng)常用到的一段shell 腳本。 這個(gè)也可以算是,統(tǒng)計(jì)web頁(yè)面的slowpage 慢訪(fǎng)問(wèn)頁(yè)面,象mysql slowquery

當(dāng)服務(wù)器壓力比較大,跑起來(lái)很費(fèi)力時(shí)候。我們經(jīng)常做站點(diǎn)頁(yè)面優(yōu)化,會(huì)去查找那些頁(yè)面訪(fǎng)問(wèn)次數(shù)比較多,而且比較費(fèi)時(shí)。 找到那些訪(fǎng)問(wèn)次數(shù)高,并且比較耗時(shí)的地址,就行相關(guān)優(yōu)化,會(huì)取得立竿見(jiàn)影的效果的。 下面是我在做優(yōu)化時(shí)候,經(jīng)常用到的一段shell 腳本。 這個(gè)也可以算是,統(tǒng)計(jì)web頁(yè)面的slowpage 慢訪(fǎng)問(wèn)頁(yè)面,象mysql slowquery 。

以下是我的:nginx 配制

 

復(fù)制代碼 代碼如下:

 log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" $request_time';

    access_log  /var/log/nginx/access.log  main buffer=32k;
 

從上面配置,可以看到:ip在 第一列,頁(yè)面耗時(shí)是在最后一列,中間用空格分隔。 因此在awk 中,分別可以用:$1
$NF 讀取到當(dāng)前值。 其中NF是常量,代表整個(gè)列數(shù)。

下面是分析代碼的shell文件,可以存為slow.sh 

復(fù)制代碼 代碼如下:

#!/bin/sh

export PATH=/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin;
export LANG=zh_CN.GB2312;

function usage()
{
   echo "$0 filelog  options";
   exit 1;
}

function slowlog()
{
#set -x;
field=$2;
files=$1;
end=2;
msg="";

[[ $2 == '1' ]] && field=1&&end=2&&msg="總訪(fǎng)問(wèn)次數(shù)統(tǒng)計(jì)";
[[ $2 == '2' ]] && field=3&&end=4&&msg="平均訪(fǎng)問(wèn)時(shí)間統(tǒng)計(jì)";

echo -e "\r\n\r\n";
echo -n "$msg";
seq -s '#' 30 | sed -e 's/[0-9]*//g';

awk '{split($7,bbb,"?");arr[bbb[1]]=arr[bbb[1]]+$NF; arr2[bbb[1]]=arr2[bbb[1]]+1; } END{for ( i in arr ) { print i":"arr2[i]":"arr[i]":"arr[i]/arr2[i]}}' $1 | sort  -t: +$field -$end -rn |grep "pages" |head -30 | sed 's/:/\t/g'
}

[[ $# < 2 ]] && usage;

slowlog $1 $2;

只需要執(zhí)行:slow.sh 日志文件  1或者2                  
1:三十條訪(fǎng)問(wèn)最平凡的頁(yè)面
2:三十條訪(fǎng)問(wèn)最耗時(shí)的頁(yè)面

執(zhí)行結(jié)果如下:

chmod +x ./slow.sh

chmod +x slow.sh
./slow.sh /var/log/nginx/
./slow.sh /var/log/nginx/access.log 2


平均訪(fǎng)問(wèn)時(shí)間統(tǒng)計(jì)#############################
/pages/########1.php        4       120.456 30.114
/pages/########2.php 1       16.161  16.161
/pages/########3.php 212     1122.49 5.29475
/pages/########4.php     6       28.645  4.77417

..................


希望以上腳本對(duì)大家會(huì)有一定幫助。

相關(guān)文章

  • linux shell腳本對(duì)未定義變量的判斷以及if的用法詳解

    linux shell腳本對(duì)未定義變量的判斷以及if的用法詳解

    今天小編就為大家分享一篇linux shell腳本對(duì)未定義變量的判斷以及if的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • 一個(gè)簡(jiǎn)單的linux命令 touch

    一個(gè)簡(jiǎn)單的linux命令 touch

    這篇文章主要介紹了一個(gè)簡(jiǎn)單的linux命令touch,touch命令用來(lái)修改文件時(shí)間戳,或者新建一個(gè)不存在的文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • linux shell命令行選項(xiàng)與參數(shù)用法詳解

    linux shell命令行選項(xiàng)與參數(shù)用法詳解

    本文介紹了linux shell中使用命令行選項(xiàng)與命令行參數(shù)的方法,在bash中,可以用以下三種方式來(lái)處理命令行參數(shù),每種方式都有自己的應(yīng)用場(chǎng)景
    2014-04-04
  • linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

    linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

    這篇文章主要介紹了linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)示例方法,大家參考使用
    2013-11-11
  • Linux 下vim使用教程

    Linux 下vim使用教程

    Vim是從 vi 發(fā)展出來(lái)的一個(gè)文本編輯器。這篇文章給大家介紹Linux 下vim使用教程,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-07-07
  • Linux chown命令使用示例

    Linux chown命令使用示例

    Linux chown命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令,chown 需要超級(jí)用戶(hù) root 的權(quán)限才能執(zhí)行此命令,本文給大家分享Linux chown命令使用示例,感興趣的朋友一起看看吧
    2023-03-03
  • Csh的基本語(yǔ)法介紹

    Csh的基本語(yǔ)法介紹

    這篇文章主要介紹了Csh的基本語(yǔ)法,講解了變量、數(shù)組、命令替換、命令行參數(shù)、IO重定向和管道等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Linux查看端口占用lsof -i:port的方法

    Linux查看端口占用lsof -i:port的方法

    下面小編就為大家?guī)?lái)一篇Linux查看端口占用lsof -i:port的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 一個(gè)簡(jiǎn)單的linux命令 cat

    一個(gè)簡(jiǎn)單的linux命令 cat

    這篇文章主要介紹了一個(gè)簡(jiǎn)單的linux命令cat,cat命令用來(lái)顯示文件內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 一個(gè)shell小案例(創(chuàng)建日期目錄)

    一個(gè)shell小案例(創(chuàng)建日期目錄)

    需要在多個(gè)目錄中 (如:beijing shanghai tianjin guangzhou 等等) 創(chuàng)建子目錄(以年份命名),然后進(jìn)入子目錄,新建目錄并以當(dāng)天的日期命名
    2016-08-08

最新評(píng)論

延寿县| 邵阳市| 马鞍山市| 建湖县| 肥城市| 开化县| 龙川县| 银川市| 林甸县| 定结县| 利川市| 靖边县| 阿勒泰市| 二手房| 拉萨市| 宁强县| 安陆市| 淳化县| 江北区| 台中市| 白玉县| 长春市| 白朗县| 遂溪县| 温州市| 黄梅县| 静乐县| 米易县| 故城县| 阜宁县| 泸溪县| 弋阳县| 当阳市| 宁强县| 平邑县| 广德县| 临西县| 大姚县| 称多县| 阳东县| 陈巴尔虎旗|