linux 日誌管理服務 logrotate

logrotate 是操做系統用來管理日誌的工具,支持日誌的切割、壓縮、清理以及郵件報警等,經過 crontab 服務定時運行,也能夠用這個工具來管理咱們本身的服務日誌,只須要簡單配置下配置文件便可linux

logrotate 配置

helloworld.conf,多份日誌能夠直接寫在一個配置文件裏面,也能夠分紅多個文件 include 進來工具

/path/to/log/hello.log
/path/to/log/world.err
{
    hourly
    rotate 24
    notifempty
    nocompress
    missingok
    copytruncate
    dateext
    dateformat .%Y%m%d%H
    olddir /path/to/log/bk/
    postrotate
        echo "update to aws s3"
    endscript
}
  • hourly: 日誌切割按照小時來切割,logrotate 3.9.0 之後版本才支持,可是其實真正的調度是在 crontab 裏面配置的
  • rotate: 保留多少個歷史文件
  • notifempty: 若是文件爲空,則不切分文件,默認是 ifempty
  • nocompress: 不壓縮文件
  • missingok: 忽略文件缺失信息
  • copytruncate: 建立一個日誌的拷貝,而且截斷老的日誌,適合那種一直寫一個文件,也不關閉的服務。因爲這個階段的過程會有一小段時間,可能會有數據丟失
  • dateext: 使用日期後綴
  • dateformat: 日期後綴的格式
  • olddir: 備份目錄
  • postrotate/endscript: 切割後執行的命令,這個選項很是靈活,能夠實現一些強大的功能,好比日誌上傳,日誌分析等等

運行

直接執行 logrotate -f helloworld.conf 能夠強制執行切割,測試是否生效post

加入到 crontab

上面測試沒有問題以後,crontab -e 加入到 crontab 裏面便可測試

59 * * * * /path/to/logrotate /path/to/helloworld.conf >/dev/null 2>&1

參考連接

轉載請註明出處
本文連接:http://www.hatlonely.com/2018/04/16/linux-%E6%97%A5%E5%BF%97%E7%AE%A1%E7%90%86%E6%9C%8D%E5%8A%A1-logrotate/url

相關文章
相關標籤/搜索