国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux下日志定時輪詢的流程詳解

2024-08-28 00:03:39
字體:
來源:轉載
供稿:網友

logrotate介紹

對于Linux系統安全來說,日志文件是極其重要的工具。日志文件包含了關于系統中發生的事件的有用信息,在排障過程中或者系統性能分析時經常被用到。當日志文件不斷增長的時候,就需要定時切割,否則,寫日志的速度和性能也會下降,更不便于我們歸檔,查詢。

所以便有了使用logrotate的時候 ,logrotate是個十分有用的工具,它可以自動對日志進行截斷(或輪循)、壓縮以及刪除舊的日志文件。例如,你可以設置logrotate,讓/var/log/foo日志文件每30天輪循,并刪除超過6個月的日志。配置完后,logrotate的運作完全自動化,不必進行任何進一步的人為干預。

logrotate配置文件位置

Linux系統默認安裝logrotate工具,它默認的配置文件在:

/etc/logrotate.conf

/etc/logrotate.d/

logrotate.conf 才主要的配置文件,logrotate.d 是一個目錄,該目錄里的所有文件都會被主動的讀入/etc/logrotate.conf中執行。

另外,如果 /etc/logrotate.d/ 里面的文件中沒有設定一些細節,則會以/etc/logrotate.conf這個文件的設定來作為默認值。

實際運行時,Logrotate會調用配置文件/etc/logrotate.conf。

可以在/etc/logrotate.d目錄里放置自定義好的配置文件,用來覆蓋Logrotate的缺省值。

定時輪循機制

Logrotate是基于CRON來運行的,其腳本是/etc/cron.daily/logrotate,日志輪轉是系統自動完成的。

logrotate這個任務默認放在cron的每日定時任務cron.daily下面 /etc/cron.daily/logrotate

/etc/目錄下面還有cron.weekly/, cron.hourly/, cron.monthly/ 的目錄都是可以放定時任務的

[/etc]$ cat /etc/cron.daily/logrotate#!/bin/sh# Clean non existent log file entries from status filecd /var/lib/logrotatetest -e status || touch statushead -1 status > status.cleansed 's/"http://g' status | while read logfile datedo [ -e "$logfile" ] && echo "/"$logfile/" $date"done >> status.cleanmv status.clean statustest -x /usr/sbin/logrotate || exit 0/usr/sbin/logrotate /etc/logrotate.conf

這里實際操作輪詢的命令最后一行

/usr/sbin/logrotate /etc/logrotate.conf

定義好了每日執行任務的腳本cron.daily/logrotate ,再查看crontab的內容,里面設置好了對應的cron.xxly

執行時間

[/etc]$ vim /etc/crontabSHELL=/bin/shPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

可以看出來了只要是在

/etc/cron.daily/ 下面的任務都是每天6:25 執行 /etc/cron.weekly/ 下面的任務都是每周日 6:47 執行 /etc/cron.monthly/ 下面的任務都是每月1號 6:52 執行

如果等不及cron自動執行日志輪轉,想手動強制切割日志,需要加-f參數;

不過正式執行前最好通過Debug選項來驗證一下(-d參數),這對調試也很重要

# /usr/sbin/logrotate -f /etc/logrotate.d/nginx // 未到時間或者未到切割條件,強制切割# /usr/sbin/logrotate -d -f /etc/logrotate.d/nginx // 輸出切割debug信息
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 志丹县| 巴中市| 扎赉特旗| 吴旗县| 栖霞市| 崇文区| 临泽县| 望城县| 竹溪县| 三穗县| 新化县| 恩平市| 咸丰县| 辽中县| 镶黄旗| 鹰潭市| 长阳| 玛纳斯县| 格尔木市| 佛山市| 碌曲县| 高安市| 儋州市| 吴桥县| 惠东县| 青神县| 扶余县| 清新县| 青川县| 彭阳县| 彰化市| 纳雍县| 虎林市| 姜堰市| 昭觉县| 蕲春县| 如东县| 鄂托克旗| 腾冲县| 施甸县| 安达市|