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