爲何要進行Nginx日誌切割:linux
Nginx不像Tomcat那樣能夠自定義日誌的大小、時間等生成方式,全部的日誌會默認追加到一個文件中,很難去定位到小時間範圍的日誌。nginx
規劃:bash
經過linux計劃任務+日誌切割腳本,實現按月生成文件夾,日誌文件按天生成spa
腳本:日誌
# cat /usr/local/nginx/splitlog.shcode
# /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 # 輸出備份日誌文件名 # echo $base_path/$log_path/access_$day.log # 經過Nginx信號量控制重讀日誌 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
綁定計劃任務blog
# crontab -l
01 00 * * * /usr/local/nginx/splitlog.sh #天天凌晨1分執行日誌切割腳本crontab
查看:it