nginx--基于crond定時服務 + logrotate實現nginx日志自動清理及備份

      網友投稿 1299 2025-04-02

      @TOC


      背景介紹

      logrotate是Linux默認自帶日志文件分割工具,結合Linux默認自帶的crond定時服務,可實現nginx、tomcat等應用日志的定時自動分割及清理,大大節省服務器磁盤空間,也方便運維人員按日期排查應用相關日志。

      本文主要介紹基于crond + logrotate實現nginx應用日志自動清理及備份

      需要使用root用戶操作,通過Linux自帶logrotate工具 + crond服務實現nginx日志每天定時自動分割及清理。

      關于crond VS anacron 和crontab VS anacrontab區別及聯系,參考我的這篇博文

      Linux-- 自帶定時服務crond VS anacron和 crontab VS anacrontab區別對比

      進入正文~

      一、logrotate說明

      查看logrotate版本號logrotate --version

      logrotate重要文件及目錄說明

      /usr/sbin/logrotate 選項

      –選項

      nginx--基于crond定時服務 + logrotate實現nginx日志自動清理及備份

      -d, --debug debug模式,不執行任何操作,僅測試,方便調試

      -f, --force 強制轉存文件

      -m, --mail=command 發送日志到指定郵箱

      -s, --state=statefile 狀態記錄文件

      -v, --verbose 顯示轉存過程信息

      -l, --log=STRING 日志文件

      二、crond定時任務配置

      2.1、查看crond狀態

      查看crond服務運行狀態

      systemctl status crond.service

      running表示運行狀態~

      查看crond服務后臺進程

      ps -ef|grep crond

      可以看到crond的守護進程是通過/usr/sbin/crond -n來實現的。

      crond的后臺進程,會每分鐘去加載是否有要執行的定時任務。

      crond服務其他常用命令

      systemctl status crond.service

      systemctl start crond.service

      systemctl restart crond.service

      systemctl stop crond.service

      systemctl reload crond.service

      2.2、配置crond定時任務

      (1)配置/etc/anacrontab

      現在比較新版的Linux操作系統,比如Linux CentOS6.0+后,都默認自帶anacron服務及/etc/anacrontab,如果操作系統比較老或者不存在/etc/anacrontab,則通過/etc/crontab配置crond的定時任務,系統一般默認已配置按日、周、月三種定時任務方案

      **–說明:**1、其中RANDOM_DELAY=45表示隨機延遲0~45分鐘,日方案中delay對應的5則表示強制延遲5分鐘,到達定時任務的指定日期后,還需要延遲一段時間再執行,總延遲時間(分鐘)= 隨機延遲RANDOM_DELAY + 強制延遲 delay

      (2)配置/etc/crontab

      配置/etc/anacrontab后,不需要再重復配置/etc/crontab

      若操作系統不存在/etc/anacrontab則需要配置/etc/crontab

      編輯配置vi /etc/crontab

      –說明:

      所標記的配置內容格式依次為: cron表達式 使用哪個用戶執行 要執行的命令

      三、配置logrotate指令腳本

      logrotate日志管理要執行的相關指令文件一般放在/etc/logrotate.d目錄下

      編輯vi /etc/logrotate.d/nginx

      #logrotate nginx分割方案 /usr/nginx/logs/nginx/*.log { #賦予root權限,否則報權限問題insecure permissions su root root #每天滾動 daily #如果日志丟失,不報錯繼續滾動下一個日志 missingok #使用當前日期作為命令格式,如:host.access.log-20210101.log dateext #保留最近52次滾動的日志 rotate 52 #使用gzip壓縮日志文件為gz,節省空間 compress #delaycompress和compress一起使用時,轉存的日志文件到下一次轉存時才壓縮 delaycompress #日志文件為空不進行滾動 notifempty #轉存日志文件,使用指定的文件模式640創建新的日志文件,歸屬nginx nginx用戶 create 640 nginx nginx #運行postrotate的腳本 sharedscripts postrotate if [ -f /usr/nginx/nginx/nginx.pid ]; then kill -USER1 `cat /usr/nginx/nginx/nginx.pid` fi endscript }

      –說明:

      注意/usr/nginx/nginx/nginx.pid,要改成自己nginx的PID進程文件

      查看PID配置路徑:cat /etc/nginx/nginx.conf

      四、驗證crond + logrotate

      4.1、驗證說明

      雖然crond服務每分鐘會加載到/etc/anacrontab中配置的日方案、周方案、月方案對應的定時任務指令,但是/etc/anacrontab中配置的定時任務最小時間單位是日,不可能等到第二天看結果后才能驗證配置是否正確吧,所以需要想辦法馬上驗證crond + logrotate`配置是否正確。

      這里以/etc/anacrontab中配置的日方案 中配置為例,其中 nice run-parts /etc/cron.daily 加載順序為:

      (1)加載/etc/cron.daily目錄下的可執行文件并執行

      (2) 加載到/etc/cron.daily/logrotate并執行

      (3)執行/etc/cron.daily/logrotate時會加載到文件中指定的/etc/logrotate.conf主配置文件

      (4)主配置文件/etc/logrotate.conf中又include包含了外部/etc/logrotate.d目錄下的所有子配置文件

      (5)而/etc/logroate.d目錄下,存放的是Linux相關用戶的日志管理指令文件,例如nginx用戶的日志清理及備份指令文件等。

      (6)總結來說,手動驗證crond +logrotate配置是否正確的命令為:

      /usr/sbin/logrotate -f /etc/logrotate.conf

      進入手動驗證測試~

      4.2、驗證測試

      (1)debug模式驗證

      debug模式,不執行任何操作,也不會清理和備份日志文件,僅測試,方便調試

      /usr/sbin/logrotate -d -l debug.log /etc/logrotate.conf

      查看輸出日志問加你debug.log定位關鍵字nginx

      – 說明

      /etc/logrotate/nginx歸屬要設置為root用戶chown root:root /etc/logrotate/nginx,否則報錯:

      Ignoring nginx because the file owner is wrong (should be root).

      (2)強制驗證

      強制驗證 -f表示強制轉存日志文件

      /usr/sbin/logrotate -f /etc/logrotate.d/nginx

      如上圖,強制驗證成功,說明配置的crond + logrotate實現nginx日志清理及備份功能正常~

      Nginx

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel right函數怎么用(excel表格怎么換行)
      下一篇:條條大路通云端,華為云應用平臺ROMA破解傳統政企上云困境
      相關文章
      亚洲欧洲日韩综合| 亚洲成a人片在线观看中文动漫| 亚洲国产第一页www| 曰韩亚洲av人人夜夜澡人人爽| 国产亚洲漂亮白嫩美女在线| 亚洲私人无码综合久久网| 久久精品亚洲AV久久久无码| 亚洲精品资源在线| 亚洲成人免费在线观看| 亚洲国产av美女网站| 亚洲国产成人精品无码区在线网站| 亚洲无砖砖区免费| 国产色在线|亚洲| 亚洲AV日韩综合一区尤物| 国产亚洲玖玖玖在线观看| 亚洲综合av一区二区三区| 亚洲色大成网站www久久九| 亚洲精品无AMM毛片| 亚洲变态另类一区二区三区| 亚洲精品V天堂中文字幕| 欧美亚洲精品一区二区| 国产成人亚洲精品电影| 久久激情亚洲精品无码?V| 亚洲一区二区三区AV无码| 久久久久久久综合日本亚洲| 久热综合在线亚洲精品| 91天堂素人精品系列全集亚洲 | 国产天堂亚洲精品| 亚洲高清视频一视频二视频三| 亚洲精品视频在线观看你懂的| 久久亚洲国产成人影院网站 | 亚洲另类春色校园小说| 2020亚洲男人天堂精品| 亚洲变态另类一区二区三区| 亚洲国产精品自在拍在线播放| 久久亚洲AV永久无码精品| 亚洲AV无码成人专区片在线观看 | 亚洲无码视频在线| 国产亚洲精品自在久久| 色拍自拍亚洲综合图区| 亚洲人配人种jizz|