摘要:如果你不處理,日志文件將變得越來越大,還好我們可以寫一個日志切割腳本來自動切割日志文件。工作進(jìn)程立刻打開新的日志文件并關(guān)閉重名名的日志文件。
nginx的日志文件沒有rotate功能。如果你不處理,日志文件將變得越來越大,還好我們可以寫一個nginx日志切割腳本來自動切割日志文件。
第一步就是重命名日志文件,不用擔(dān)心重命名后nginx找不到日志文件而丟失日志。在你未重新打開原名字的日志文件前,nginx還是會向你重命名的文件寫日志,linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主進(jìn)程發(fā)送USR1信號。
nginx主進(jìn)程接到信號后會從配置文件中讀取日志文件名稱,重新打開日志文件(以配置文件中的日志名稱命名),并以工作進(jìn)程的用戶作為日志文件的所有者。
重新打開日志文件后,nginx主進(jìn)程會關(guān)閉重名的日志文件并通知工作進(jìn)程使用新打開的日志文件。
工作進(jìn)程立刻打開新的日志文件并關(guān)閉重名名的日志文件。
然后你就可以處理舊的日志文件了。
#nginx日志切割腳本 #!/bin/bash #設(shè)置日志文件存放目錄 logs_path="/usr/local/nginx/logs/" #設(shè)置pid文件 pid_path="/usr/local/nginx/nginx.pid" #重命名日志文件 mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log #向nginx主進(jìn)程發(fā)信號重新打開日志 kill -USR1 `cat ${pid_path}`
crontab 設(shè)置作業(yè)
0 0 * bash /usr/local/nginx/nginx_log.sh
這樣就每天的0點(diǎn)0分把nginx日志重命名為日期格式,并重新生成今天的新日志文件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39196.html
摘要:準(zhǔn)備工作安裝如果遇到這個錯誤執(zhí)行如果沒有這個文件夾先執(zhí)行使用切割日志創(chuàng)建日志源管道文件配置訪問日志啟動,當(dāng)產(chǎn)生數(shù)據(jù)時,使用將中的數(shù)據(jù)轉(zhuǎn)移到啟動或重啟或定時清理舊日志創(chuàng)建清理腳本保存內(nèi)容添加定時執(zhí)行任務(wù)每天點(diǎn)執(zhí)行 準(zhǔn)備工作 安裝cronolog brew instal cronolog如果遇到這個錯誤 showImg(https://segmentfault.com/img/bVbabx...
摘要:作為客戶未完全準(zhǔn)備好切換到的暫時性方案。一作為服務(wù)啟動實(shí)際沒有使用這個方法,原因不能生成日志文件,不知道怎么實(shí)現(xiàn)日志文件的切割。官方?jīng)]有提供作為服務(wù)啟動的方案。以服務(wù)啟動依賴于,當(dāng)前最新版是。 作為客戶未完全準(zhǔn)備好切換到Linux的暫時性方案。 本文參考了許多網(wǎng)站上的資料,做了簡單的整理。 一、作為服務(wù)啟動nginx 實(shí)際沒有使用這個方法,原因:不能生成日志文件,不知道怎么實(shí)現(xiàn)日志文...
摘要:保存成功退出,會提示使用命令有可能報的錯誤,這時需要安裝相應(yīng)的軟件包 Shell沒基礎(chǔ),但是需要實(shí)現(xiàn)nginx日志每日切割的效果,在網(wǎng)上找了一些照搬都沒怎么成功,最后自己試驗(yàn)出來的才是真正能用的不是嘛參考文章:https://www.cnblogs.com/kaitu... 1.在某目錄下創(chuàng)建需要定時執(zhí)行的腳本 # cd /etc/nginx/mylogs 2.創(chuàng)建腳本名為cut-l...
閱讀 3330·2021-10-11 11:08
閱讀 4459·2021-09-22 15:54
閱讀 940·2019-08-30 15:56
閱讀 892·2019-08-30 15:55
閱讀 3567·2019-08-30 15:52
閱讀 1377·2019-08-30 15:43
閱讀 1964·2019-08-30 11:14
閱讀 2535·2019-08-29 16:11