nginx日志分割實現
摘要:nginx本身不支持日志分割,但是利用它的PID可以實現日志分割。
看了好幾個網上的例子,寫得不清不楚。於是決定自己寫一個,說不定哪天忘記了可以再次打開學習學習。
但願我寫得比較清楚,下次看的時候或者別人看的時候不再費神。
由於nginx本身不支持日志分割,但是利用它的PID可以實現日志分割。
1.編寫日志分割程序nginx-log.sh
#/bin/bash
savepath_log='/logs/nginx/logs'#日志將要存放的路徑
nglogs='/usr/local/nginx/logs'#nginx的日志路徑
mkdir -p $savepath_log/$(date+%Y)/$(date+%m)
mv nglogs/access.log %savepath_log/$(date+%Y)/$(date+%m)/access.%(data+%Y%m%d).log
mv nglogs/error.log %savepath_log/$(date+%Y)/$(date+%m)/error.%(data+%Y%m%d).log
kill -USR1 'cat /usr/local/nginx/logs/nginx.pid'#
#將這段腳本保存後加入到linux的crontab守護進程,讓此腳本在每天凌晨0點執行,就可以實現日志的每天分割功能。
2.修改文件權限,使其可以被執行。
chmod 755 nginx-log.sh
3.可以看一下有哪些計劃任務
crontal -l
4.打開守護進程,進入編程模式
crontal -e #如用vi按i鍵
5.在守護進程中增加要執行的任務,通常日志在0點分割
0 0 * * * /logs/nginx/nginx-log.sh #執行文件存放路徑
好了,就等著明天到日志目錄下去看看實現結果吧。。