日誌分析的shell指令碼

2021-09-05 22:05:12 字數 2751 閱讀 6679

#!/bin/sh

#顯示指令碼說明,不同顏色

echo -e

"\e[34;1m################################################\e[0m"

echo -e

"\e[34;1m### format like 'analysis_log.sh 2007-07-01' ###\e[0m"

echo -e

"\e[34;1m### default parameters is today ###\e[0m"

echo -e

"\e[34;1m################################################\e[0m"

#rsync 的密碼

rsync_password=ssoapi96

export rsync_password

#獲得引數個數

var_parm_num=

$##定義臨時檔名

tmp_log_file=/tmp/api.log

tmp_unique_file=/tmp/tmp.log

#檢查引數情況,並且得出一系列臨時日誌檔名

if [

$var_parm_num -eq

0]; then

today=`date +%y-%m-%d`

logfile=api_log.

$today

logfile96=/tmp/96_api_log.

$today

logfile97=/tmp/97_api_log.

$today

logfile98=/tmp/98_api_log.

$today

logfile99=/tmp/99_api_log.

$today

else

logfile=api_log.$

1logfile96=/tmp/96_api_log.$

1logfile97=/tmp/97_api_log.$

1logfile98=/tmp/98_api_log.$

1logfile99=/tmp/99_api_log.$

1fi#獲得日誌檔案(本機,遠端)

cp /data/log/api/

$logfile

$logfile96

rsync -vzrtopg web@

172.24

.139

.97::apilog/

$logfile

$logfile97

rsync -vzrtopg web@

172.24

.139

.98::apilog/

$logfile

$logfile98

rsync -vzrtopg web@

172.24

.139

.99::apilog/

$logfile

$logfile99

#將不同伺服器上的日誌檔案輸入到乙個檔案中,只去其中的3、4列,去除其中含有關鍵字的行

cat

$logfile96 | awk

''| grep -v

"sso_send" >

$tmp_log_file

cat

$logfile97 | awk

''| grep -v

"sso_send" >>

$tmp_log_file

cat

$logfile98 | awk

''| grep -v

"sso_send" >>

$tmp_log_file

cat

$logfile99 | awk

''| grep -v

"sso_send" >>

$tmp_log_file

#對全部日誌的檔案進行過濾排序,去掉重覆記錄,輸入到另乙個檔案中

sort -u

$tmp_log_file >

$tmp_unique_file

#輸出當前時間

echo -e

"\e[35;1m"`date +%y-%m-%d\ %h:%m:%s`

"\e[0m"

#計算某些動作的行數,既是該動作的數量

echo -e

"\e[36;1mlogin nums\e[0m"

cat

$tmp_log_file | awk

'' | grep

"1" |wc -l

echo -e

"\e[32;1muser nums\e[0m"

cat

$tmp_unique_file | awk

'' | grep

"1" |wc -l

echo -e

"\e[33;1mcheck_exist nums\e[0m"

cat

$tmp_log_file | awk

'' | grep

"2" |wc -l

#刪除臨時日誌檔案

rm $tmp_log_file

rm $tmp_unique_file

rm $logfile96

rm $logfile97

rm $logfile98

rm $logfile99

SHELL 分析日誌

1 檢視當天有多少個ip訪問 awk log file sort uniq wc l 2 檢視某乙個頁面被訪問的次數 grep index.php log file wc l 3 檢視每乙個ip訪問了多少個頁面 awk end log file 4 將每個ip訪問的頁面數進行從小到大排序 awk e...

shell 日誌分析

列出當天訪問次數最多的ip cut d f 1 usr local apache2 logs access log uniq c sort rn head 20 cut d,delimiter delim use delim instead of tab for field delimiter 表示...

歸檔老日誌的shell指令碼

本指令碼來自有學習阿銘的博文學習 工作中,需要用到日誌切割logrotate,按照各自的需要切割 定義保留日誌。bin bash 用途 日誌切割歸檔 按天切割 日期 2018年12月15日 版本 v0.1 logdir data logs 定義函式如果乙個檔案存在則刪除 function e df ...