Linux日誌管理神器logrotate使用簡介
大家可能都有管理日誌的需要,比如定時壓縮日誌,或者當日志超過一定大小時就自動分裂成兩個檔案等。最近就接到這樣一個小任務。我們的程式用的是C語言,用log4cpp的library來實現日誌記錄。但是問題是log4cpp並不支援當日志超過一定大小時自動分裂的功能,只能從頭覆蓋之前的日誌,但這顯然不是我們想要的。經過一番搜尋,我發現其實Linux自帶的logrotate命令就能夠實現這樣的功能。
這是logrotate的一段簡介:
The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files. Logrotate allows for the automatic rotation compression, removal and mailing of log files. Logrotate can be set to handle a log file daily, weekly, monthly or when the log file gets to a certain size.
為了使用它,主要有兩個地方需要修改一下:一個是/etc/logrotate.conf,另一個是/etc/logrotate.d/下面的檔案。
你既可以在logrotate.conf中直接定義如何處理你的log檔案,也可以在/logrotate.d/下面針對自己的log新建一個對應的檔案來定義處理log的行為。
這裡是logrotate命令的詳細解釋的連結:http://linuxcommand.org/man_pages/logrotate8.html
下面是一個具體例子:
/var/log/news/news.crit { monthly rotate 2 olddir /var/log/news/old missingok postrotate kill -HUP ‘cat /var/run/inn.pid‘ endscript nocompress }
monthly:說明是一個月進行一次處理,常用的還有daily,weekly
rotate 2:意思是說最多保留兩個備份,多餘的老的日誌就被覆蓋了
olddir:定義了舊的日誌儲存在哪裡
missingok:意思是如果上述news.crit檔案找不到的話也不報錯,直接跳過
postrotate … endscript:它們以及中間的命令定義了在執行完rotate之後要做什麼,一般主要是為了讓使用該日誌檔案的程式知道這個日誌被替換了,需要重新開啟這個檔案
nocompress:說明舊日誌不需要被壓縮儲存
logrotate定義瞭如何處理日誌,而它本身則是被crond定時呼叫的。crond是一個Unix系作業系統中的定時排程軟體,下面一段文字是從wiki上抄來的:
The software utility Cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration—though its general-purpose nature makes it useful for things like connecting to the Internet and downloading email at regular intervals.
預設的logrotate是一天執行一次,它的指令碼被放在/etc/cron.daily/下面。除了cron.daily外還有cron.weekly,cron.monthly,cron.hourly等分別對應不同的頻率,你可以根據自己的需要把指令碼放在不同的資料夾下面。在設定外所有東西以後,別忘了使用chkconfig crond on來保證它會一直開機執行。然後就大工告成了。
相關文章
- 使用logrotate 管理Linux日誌檔logrotateLinux
- 使用logrotate 管理Linux日誌檔(zt)logrotateLinux
- 日誌切分神器--logrotatelogrotate
- 使用logrotate管理日誌檔案logrotate
- 使用logrotate 管理日誌檔案(轉)logrotate
- 在Linux中,如何使用logrotate命令管理日誌檔案?Linuxlogrotate
- 日誌管理工具logrotatelogrotate
- 使用logrotate配置日誌輪詢logrotate
- 使用logrotate來壓縮日誌(轉)logrotate
- 華納雲:Linux中如何用logrotate管理每日增長的日誌Linuxlogrotate
- linux 小工具之:日誌切割(logrotate)Linuxlogrotate
- Linux 下 logrotate 日誌輪詢操作梳理Linuxlogrotate
- tomcat日誌切割-logrotateTomcatlogrotate
- 如何使用 logrotate 命令保持日誌檔案更新logrotate
- 『學了就忘』Linux日誌管理 — 90、Linux中日誌介紹Linux
- linux日誌管理Linux
- nginx1.24配置logrotate日誌切割Nginxlogrotate
- GPU破解神器Hashcat使用簡介GPU
- Beego(簡介、配置、路由、日誌)Go路由
- Linux 日誌管理指南Linux
- Linux服務管理神器:SYSTEMD介紹Linux
- MySQL日誌引數配置簡介MySql
- linux日誌管理(三)(轉)Linux
- Oracle RAC叢集、程式、日誌簡介Oracle
- logrotate自動輪換切割壓縮和清理歷史日誌場景介紹logrotate
- 如何在 Linux 中管理日誌Linux
- Linux日誌管理詳解(轉)Linux
- 『學了就忘』Linux日誌管理 — 92、日誌輪替Linux
- 日誌收集之filebeat使用介紹
- logrotate 不支援不同裝置間的日誌轉儲logrotate
- 日誌切割logrotate和定時任務crontab詳解logrotate
- Logrotate日誌切割報錯 檔案不再同一個使用者組下logrotate
- 日誌管理
- mysql日誌系統簡單使用MySql
- Linux系統管理——Linux簡介Linux
- 在Linux中,如何使用ELK進行日誌管理和分析?Linux
- 使用外部表管理Oracle 告警日誌Oracle
- 『學了就忘』Linux日誌管理 — 93、日誌輪替補充Linux