nginx分割日志
實(shí)現(xiàn)nginx日志按照時(shí)間分割存儲(chǔ)
backups_log.sh
#設(shè)置log日志的存儲(chǔ)地址 LOG_PATH=/home/soft/nginx/logs #設(shè)置歷史日志的存儲(chǔ)地址 HISTORY_LOG_PATH=/home/soft/nginx/history_logs #獲取分割日志時(shí)所需要的時(shí)間當(dāng)做日志文件名稱 TIME=$(date +%Y-%m-%d) #將當(dāng)前日志備份到指定存儲(chǔ)目錄 mv ${LOG_PATH}/access.log ${HISTORY_LOG_PATH}/access_log/${TIME}_access.log #發(fā)送信號(hào)重新打開日志文件 kill -USR1 $(cat ${LOG_PATH}/nginx.pid)將sh腳本加入到定時(shí)任務(wù)中,每天23:59執(zhí)行
crontab -e添加定時(shí)任務(wù)
59 23 * * * /home/sh/backups_log.sh?
注意事項(xiàng):
1.在沒有執(zhí)行kill -USR1 nginx_pid 之前,即便已經(jīng)對(duì)文件執(zhí)行了mv命令也只是改變了文件的名稱,nginx還是會(huì)向新命名的文件中照常寫入日志數(shù)據(jù)。原因在于linux系統(tǒng)中,內(nèi)核是根據(jù)文件描述符來找文件的
2.添加定時(shí)任務(wù)后如果定時(shí)任務(wù)沒有起作用,則使用 ps -aux | grep cron 確認(rèn)下服務(wù)是否已經(jīng)開啟
3. -USR1 是進(jìn)程間通信的信號(hào)中的一種,至于nginx進(jìn)程接收到該信號(hào)做什么操作是它內(nèi)部定義的,除此之外我們可以使用 kill -l 確認(rèn)liunx中包含哪些信號(hào)
轉(zhuǎn)載于:https://www.cnblogs.com/itsuibi/p/11223232.html
總結(jié)
- 上一篇: IIS7 经典模式和集成模式的区别分析
- 下一篇: Premature Optimizati