使用shell腳本對Nginx日志進行切分的示例代碼
本文介紹了使用shell腳本對Nginx日志進行切分的示例代碼,分享給大家,具體如下:
1.日志格式
默認的日志格式: main
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
如默認的main日志格式,記錄這么幾項
遠程IP- 遠程用戶/用戶時間 請求方法(如GET/POST) 請求體body長度 referer來源信息
http-user-agent用戶代理/蜘蛛 ,被轉(zhuǎn)發(fā)的請求的原始IP
http_x_forwarded_for:在經(jīng)過代理時,代理把你的本來IP加在此頭信息中,傳輸你的原始IP
2.實現(xiàn)思路
shell+定時任務+nginx信號管理,完成日志按日期存儲
#!/bin/bash base_path='/usr/local/nginx/logs' log_path=$(date -d yesterday +"%Y%m") day=$(date -d yesterday +"%d") mkdir -p $base_path/$log_path mv $base_path/access.log $base_path/$log_path/access_$day.log kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
3.定時任務
Crontab 編輯定時任務
01 00 * * * /xxx/path/b.sh 每天0時1分(建議在02-04點之間,系統(tǒng)負載小)、
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
統(tǒng)計網(wǎng)卡流量的兩段shell腳本(使用ifconfig)
一個很小巧的shell腳本,使用ifconfig的不間斷輸出來統(tǒng)計網(wǎng)卡的流量,有需要的朋友可以參考下2013-02-02Linux shell條件判斷if中的-a到-z的意思【推薦】
這篇文章主要介紹了Linux shell條件判斷if中的-a到-z的意思,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-08-08并發(fā)數(shù)據(jù)庫壓力測試的shell腳本代碼
并發(fā)數(shù)據(jù)庫壓力測試的shell腳本,有需要的朋友可以參考下2013-02-02