国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux監(jiān)控日志命令

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    /" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"# class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    ()" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      sed -u "s/\(.\{$COLUMNS\}\).*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    $norm/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆ǔN覀兪褂?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    $norm/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆ǔN覀兪褂?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days= class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      log="

    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    "

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*# class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    #g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    /' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*MSIE 7.0.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*Opera.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*Akregator.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*Thunderbird.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*Liferea.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      s/\([^\t]\)\t.*Google Desktop.*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    ./' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/

    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/ class="main">

    linux監(jiān)控日志命令

    時間: 佳洲1085 分享
    linux監(jiān)控日志命令

      在linux系統(tǒng)下,日志記錄是檢查系統(tǒng)的最好的方法之一。下面由學(xué)習(xí)啦小編為大家整理了linux監(jiān)控日志的相關(guān)命令和方法,希望大家喜歡。

      linux監(jiān)控日志命令方法一、實時過濾日志

      使用 tail -f 命令可以查看日志文件最近新增的部分。不過,實際應(yīng)用中會存在一些麻煩,你會發(fā)現(xiàn)輸出了一大堆內(nèi)容占滿了整個屏幕。有必要格式化一下這些內(nèi)容^_^。腳本如下:

      #需要將腳本保存起來, $COLUMNS 變量才會有效

      #注意: -n10 表示顯示最后10行內(nèi)容,可以自己修改

      deny="`tput bold; tput setaf 1`" #亮紅

      high="`tput bold; tput setaf 3`" #亮黃

      norm="`tput sgr0`"

      tail "$@" -s.1 -f access_log |

      grep -Ev --line-buffered -f agents_to_ignore -f files_to_ignore |

      sed -u "s/\(.*\) - \[[^]]*\]\(.*\)/\1\2/" | #過濾掉一些字段

      #分析google蜘蛛訪問

      sed -u \

      's#\(.*\) "http://www\.\(google\.[^/]*\).*[?&_]q=\([^&"]*\)[^"]*"#\1 "\2 (\3)" #' |

      #過濾不需要的內(nèi)容

      sed -u 's/ HTTP\/1.[01]//;

      s/.NET CLR [0-9.]*//g;

      s/Gecko\/[0-9]*//;

      s/rv:[0-9.]*//;

      s/Mozilla\/[0-9.]* //' |

      sed -u "s/^/ /; s/^ *\([ 0-9.]\{15,\}\) -/\1/" | #對齊IP地址

      sed -u "s/\(.\{$COLUMNS\}\).*/\1/" | #保證輸出行寬度統(tǒng)一

      #高亮顯示 referrer行

      sed -u "

      s/\([^\"]*\"[^\"]*\" 40[34] [0-9]* \"\)\([^\"]*\)\(\".*\)/\1$deny\2$norm\3/;t;

      s/\([^\"]*\"[^\"]*\" [0-9 -]* \"\)\([^\"]*\)\(\".*\)/\1$high\2$norm\3/;t;

      "

      保存為 tail_access_log 并在shell中調(diào)用,相信這個大家都會的了^_^。

      linux監(jiān)控日志命令方法二、近期日志高效監(jiān)控腳本

      如果網(wǎng)站流量很大的話,日志文件是相當(dāng)龐大的。分析這些日志的時候就需要小心處理了,例如:筆者的訪問日志已經(jīng)有700多MB了,一次性讀取的化會相當(dāng)?shù)穆?,通常我們使?tac 命令讀取文件最后一部分內(nèi)容,sed 命令用于結(jié)束讀取。腳本如下:

      #!/bin/sh

      # 返回最近N天內(nèi) "NCSA" 格式的 HTTP 日志

      days=$1

      log="$2"

      export LANG=C #加速

      export TZ=UTC0

      last_log_date=`tail -1 "$log" |

      sed 's#.*\[\([^:]*\):\([^ ]*\) .*#\1 \2#g' |

      tr '/' ' '`

      yesterday=`date --date="$last_log_date $days day ago" +"%d/%b/%Y:%H:%M"`

      #間隔周期10分鐘

      yesterday=`echo $yesterday | cut -b-16`

      yesterday="$yesterday[0-9]"

      tac "$log" | sed "\#$yesterday#Q"

      同樣將腳本保存為get_last_days [天數(shù)] [文件名],即可使用。

      講了這個這么多下面來段實例。一般,我們可能會感興趣會有哪些用戶訂閱了我們的rss種子。已經(jīng)采用何種方式訂閱的,skyfeed、google等等。

      #!/bin/sh

      export LANG=C #加速

      feed="/feed/rss2.xml"

      #查看一周內(nèi)訂閱rss的用戶的訪問情況

      ./get_last_days 7 access_log |

      #過濾rss feed url

      grep -F "GET $feed" |

      #剔除通過refer訪問rss的站點

      grep -vE "pixelbeat.org.*(rv:|MSIE|AppleWebKit/|Konqueror|Opera) .* " |

      #獲取 ip地址 & 瀏覽器情況

      sed 's/\([0-9]*\.[0-9]*\)\.[0-9]*\.[0-9]* .*"\([^"]*\)"$/\1\t\2/' |

      #根據(jù)瀏覽器、用戶網(wǎng)段進(jìn)行排序

      sort -k2 -k1,1 |

      #合并

      uniq -c |

      #忽略單個請求

      grep -vE " 1 .*(rv:|MSIE|AppleWebKit/|Konqueror|Opera).*" |

      #忽略機器人訪問

      grep -vE -f agents_to_ignore |

      #合并訂閱用戶

      sed '

      s/\([^\t]\)\t.*Firefox.*/\1\tFirefox/;

      s/\([^\t]\)\t.*MSIE 7.0.*/\1\tIE7/;

      s/\([^\t]\)\t.*Opera.*/\1\tOpera/;

      s/\([^\t]\)\t.*Akregator.*/\1\tAkregator/;

      s/\([^\t]\)\t.*Thunderbird.*/\1\tThunderbird/;

      s/\([^\t]\)\t.*Liferea.*/\1\tLiferea/;

      s/\([^\t]\)\t.*Google Desktop.*/\1\tGoogle Desktop/;

      ' |

      #顯示瀏覽器類型

      cut -d"`echo -e '\t'`" -f2 |

      #分組

      sort |

      #計數(shù)

      uniq -c |

      #識別使用google訂閱的用戶

      sed 's/\(.*\)\(feedfetcher.html\)\(.*\)id=\([0-9]*\).*/\1\2.\4\3/' |

      #計數(shù)

      sed 's/ *[0-9]* .*\(http[^;]*\).* \([0-9]*\) subscriber.*/ \2 \1/' |

      #再次合并處理

      uniq -f1 |

      #排序

      sort -k1,1n |

      #對齊

      sed "s/^/ /; s/ *\([ 0-9]\{7,\}\) \([^ ].*\)/\1 \2/" |

      #截取

      sed "s/\(.\{80\}\).*/\1/" #note $COLUMNS not exported

    /" |

      #截取

      sed "s/\(.\{80\}\).*/ class="main">

    3599863