日誌切割如果使用預設日誌配置,經過一段時間運行後,access.log和error.log文件會變得非常大,使維護和排查問題變得不便,所以非常有必要做日誌切割。通常的思路是:使用nginx的-s reopen命令,結合linux系統的crontab定時任務命令,弄一個定時任務按時切割日誌文件。每天定... ...
日誌切割
如果使用預設日誌配置,經過一段時間運行後,access.log和error.log文件會變得非常大,使維護和排查問題變得不便,所以非常有必要做日誌切割。
通常的思路是:使用nginx的-s reopen命令,結合linux系統的crontab定時任務命令,弄一個定時任務按時切割日誌文件。
每天定時執行腳本切割日誌文件。
附:bash腳本
#!/bin/bash #Rotate the nginx logs to prevent a single logfile from consuming too much disk space. LOGS_PATH=/usr/local/nginx/logs/history CUR_LOGS_PATH=/usr/local/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mv ${CUR_LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log mv ${CUR_LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log #向nginx master進程發送USR1信號,USR1信號是重新打開日誌文件,相當於-s reopen命令 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
access日誌的詳細用法
1,log_format指令用來定義日誌的格式,作用在上下文http中。
預設的main日誌格式如下:
2,定義日誌文件,通過access_log指令來完成。
預設的access_log是放在http上下文中,我們也可以為每個server塊定義access_log,如下圖。
參考資料
- crontab:相當於Windows下的任務計劃,參考:https://www.cnblogs.com/wt645631686/p/6868672.html
- bash腳本:是Linux下Shell的其中一種,類似於Windows下Shell的cmd,參考:https://blog.csdn.net/cy1070779077/article/details/85034083,http://www.runoob.com/linux/linux-shell.html。