#!/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...