shell指令碼nginx日誌解析入庫

2021-07-27 10:08:43 字數 1111 閱讀 8184

#!/bin/sh

#獲取nigin日誌

log_path='/usr/local/nginx/logs/access.log'

cat $log_path | while read line

do#判斷該條資訊是否為我們需要

if [[ $line == *'eleid='* ]]

then

#替換中=和&的轉譯符

$line=$

$line=$

echo $

old_ifs="$ifs" 

ifs="|" 

arr=($line) 

ifs="$old_ifs"

#日期轉換

datetime=$

datetime=$

datetime=`date -d "$datetime" +"%f %t"`

#解析引數

param=$

param=$

#分割引數

old_ifs="$ifs" 

ifs="=" 

paramarr=($) 

ifs="$old_ifs" 

#獲取uuid

uuid=$(cat /proc/sys/kernel/random/uuid)

uuid=$

eleid=$

type=$

page=$

#拿掉第乙個' '及其左邊的字串

accurl="$$"

accurl=$

#拿掉第一條 / 及其右邊的字串

#accurl=$

#echo '---------------------------'$

#ip計算轉換

#ip= $

#ip=ip2int "192.168.1.1"

#echo '--------------------'$ip2

mysql -h120.76.***.*** -u*** -p*** -e"insert into goldminedb.visit_0 values ('$uuid','$eleid',inet_aton('"$"'),$type,'$datetime','$accurl','$page');"

fidone

使用shell指令碼對Nginx日誌進行切分

預設的日誌格式 main http user agent http x forwarded for 如預設的main日誌格式,記錄這麼幾項 遠端ip 遠端使用者 使用者時間 請求方法 如get post 請求體body長度 referer 資訊 http user agent使用者 蜘蛛 被 的請求...

nginx日誌切割指令碼

nginx的日誌檔案沒有rotate功能。如果你不處理,日誌檔案將變得越來越大,還好我們可以寫乙個nginx日誌切割指令碼來自動切割日誌檔案。第一步就是重新命名日誌檔案,不用擔心重新命名後nginx找不到日誌檔案而丟失日誌。在你未重新開啟原名字的日誌檔案前,nginx還是會向你重新命名的檔案寫日誌,...

nginx日誌分析指令碼

訪問最多的ip 訪問最多的頁面 cc攻擊 訪問頁面狀態碼數量 根據時間段來訪問最多的ip 統計某列ip數量 awk end usr local nginx logs access.log bin bash log file 1echo 統計訪問最多的10個ip awk end log file so...