使用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使用者代理/蜘蛛 ,被轉發的請求的原始IP
http_x_forwarded_for:在經過代理時,代理把你的本來IP加在此頭資訊中,傳輸你的原始IP
2.實現思路
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點之間,系統負載小)
相關文章
- 使用shell進行日誌分析
- linux中用shell指令碼對tomcat和nginx做日誌切割Linux指令碼TomcatNginx
- 【shell】日誌切割指令碼指令碼
- nginx日誌分割小指令碼Nginx指令碼
- nginx自己寫日誌切割指令碼Nginx指令碼
- 如何使用SHC對Shell指令碼進行封裝和原始碼隱藏指令碼封裝原始碼
- nginx日誌按照天進行分割Nginx
- 通過shell指令碼新增備庫日誌指令碼
- 使用 Bash shell 指令碼進行功能測試(轉)指令碼
- 基於Linux指令碼,對日誌進行定時壓縮備份Linux指令碼
- Centos下Nginx配置WEB訪問日誌並結合shell指令碼定時切割CentOSNginxWeb指令碼
- 【shell 指令碼】刪除/var/log 下的日誌指令碼
- 使用Shell指令碼對Linux系統和程式資源進行監控指令碼Linux
- 對比Elasticsearch,使用Doris進行高效日誌分析(下)Elasticsearch
- 對比Elasticsearch,使用Doris進行高效日誌分析(上)Elasticsearch
- 日誌切分神器--logrotatelogrotate
- Nginx access.log日誌分析shell命令Nginx
- 透過shell指令碼監控日誌切換頻率指令碼
- Linux/Unix shell 指令碼清除歸檔日誌檔案Linux指令碼
- 通過shell指令碼監控日誌切換頻率指令碼
- shell指令碼一鍵安裝nginx指令碼Nginx
- 執行shell指令碼指令碼
- 使用CRONTAB呼叫shell指令碼執行EXP指令碼
- 日誌刪除指令碼指令碼
- 日誌轉儲指令碼指令碼
- 使用 shell 命令統計日誌
- shell指令碼:自動記憶體監控及日誌備份指令碼記憶體
- [Logmnr]對重做日誌進行資料探勘
- cronolog 對 tomcat 7 進行日誌切割Tomcat
- 日誌服務之使用Nginx模式採集日誌Nginx模式
- 使用goaccess統計nginx日誌GoNginx
- crontab執行shell指令碼指令碼
- linux 分享日誌指令碼Linux指令碼
- 使用Log4j進行日誌操作
- 使用Java和Elastic Stack進行日誌分析JavaAST
- 如何使用Nginx對Artifactory進行http應用NginxHTTP
- 使用ab對nginx進行壓力測試Nginx
- shell分割日誌