欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本分析 nginx日志訪問次數(shù)最多及最耗時(shí)的頁面(慢查詢)

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

當(dāng)服務(wù)器壓力比較大,跑起來很費(fèi)力時(shí)候。我們經(jīng)常做站點(diǎn)頁面優(yōu)化,會(huì)去查找那些頁面訪問次數(shù)比較多,而且比較費(fèi)時(shí)。 找到那些訪問次數(shù)高,并且比較耗時(shí)的地址,就行相關(guān)優(yōu)化,會(huì)取得立竿見影的效果的。 下面是我在做優(yōu)化時(shí)候,經(jīng)常用到的一段shell 腳本。 這個(gè)也可以算是,統(tǒng)計(jì)web頁面的slowpage 慢訪問頁面,象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在 第一列,頁面耗時(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="總訪問次數(shù)統(tǒng)計(jì)";
[[ $2 == '2' ]] && field=3&&end=4&&msg="平均訪問時(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:三十條訪問最平凡的頁面
2:三十條訪問最耗時(shí)的頁面

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

chmod +x ./slow.sh

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


平均訪問時(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 中的gunzip命令

    Linux 中的gunzip命令

    gunzip是個(gè)使用廣泛的解壓縮程序,它用于解開被gzip壓縮過的文件,這些壓縮文件預(yù)設(shè)最后的擴(kuò)展名為.gz。下面通過本文給大家分享Linux 中的gunzip命令,一起看看吧
    2017-09-09
  • shell之定時(shí)周期性執(zhí)行腳本的方法示例

    shell之定時(shí)周期性執(zhí)行腳本的方法示例

    這篇文章主要介紹了shell之定時(shí)周期性執(zhí)行腳本的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Linux Shell簡介

    Linux Shell簡介

    本文編譯整理時(shí)對(duì)相關(guān)章節(jié)做了相應(yīng)的刪改處理,去掉了針對(duì)Mandrake Linux的部分內(nèi)容
    2013-06-06
  • shell編程中的字符串截取方法小結(jié)

    shell編程中的字符串截取方法小結(jié)

    這篇文章主要介紹了shell編程中的字符串截取方法小結(jié),本文講解了截取字符變量的前8位的方法、按指定的字符串截取方法、按照指定要求分割方法等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • linux基礎(chǔ)之Shell Script入門介紹

    linux基礎(chǔ)之Shell Script入門介紹

    本文介紹下,學(xué)習(xí)shell script編程的入門知識(shí),通過幾個(gè)入門實(shí)例,帶領(lǐng)大家走進(jìn)shell script的神圣殿堂,呵呵,有需要的朋友參考下
    2013-11-11
  • Linux xargs命令如何將命令的結(jié)果作為參數(shù)

    Linux xargs命令如何將命令的結(jié)果作為參數(shù)

    xargs是給命令傳遞參數(shù)的一個(gè)過濾器,也是組合多個(gè)命令的工具,這篇文章主要介紹了Linux xargs命令如何將命令的結(jié)果作為參數(shù),需要的朋友可以參考下
    2023-04-04
  • linux 獲取文件名稱并生成列表txt的方法

    linux 獲取文件名稱并生成列表txt的方法

    今天小編就為大家分享一篇linux 獲取文件名稱并生成列表txt的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 一天一個(gè)shell命令 linux好管家-進(jìn)程-ps命令詳解

    一天一個(gè)shell命令 linux好管家-進(jìn)程-ps命令詳解

    這篇文章主要介紹了一天一個(gè)shell命令 linux好管家-進(jìn)程-ps命令詳解 ,需要的朋友可以參考下
    2016-06-06
  • Shell腳本調(diào)試?-n?-v?-x?-c的具體用法

    Shell腳本調(diào)試?-n?-v?-x?-c的具體用法

    本文主要介紹了Shell腳本調(diào)試?-n?-v?-x?-c的具體用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 深入了解Linux的文件權(quán)限

    深入了解Linux的文件權(quán)限

    Shell是操作系統(tǒng)外殼程序的統(tǒng)稱,Windos中的圖形化界面、Linux中的命令行外殼都是外殼程序。CentOS中的外殼程序被稱為bash。本文主要是和大家聊聊Linux中的文件權(quán)限,感興趣的可以了解一下
    2022-10-10

最新評(píng)論