logroate的使用

那年仲夏 提交于 2020-02-27 14:08:37

lograte配置参数

daily 指定转储周期为每天
weekly 指定转储周期为每周
monthly 指定转储周期为每月
rotate 转储次数,超过将会删除最老的那一个
missingok 忽略错误,如“日志文件无法找到”的错误提示
dateext 切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期
dateformat  -%Y%m%d%s #配合dateext 一起使用,修改后缀格式
compress 通过gzip 压缩转储旧的日志
delaycompress 当前转储的日志文件到下一次转储时才压缩
notifempty 如果日志文件为空,不执行切割
sharedscripts 只为整个日志组运行一次的脚本
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
size  size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).

以nginx日志为例子

cat /etc/logroate.d/nginx

/data/logs/nginx/*.log {
    su root root   #切换用户
    daily    #按天执行
    rotate 12  #保留12次,超过即删除最老的一次
    missingok #忽略错误
    notifempty  #空日子不切割
    create 0777 root root  #创建的文件授权
    sharedscripts  #所有的日期切换,只执行一次脚本
    postrotate
        /bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid  2>/dev/null` 2>/dev/null || true        
    endscript
}

logroate -d /etc/logroate.d/nginx  #指定配置调试,debug模式,
logroate -f /etc/logroate.d/nginx  

logrotate最常用的三个方式为:
logrotate /etc/logrotate.conf:重新读取配置文件,并对符合条件的文件文件进行rotate。
logrotate -d /etc/logrotate.conf:调试模式,输出调试结果,但并不执行。
logrotate -f /etc/logrotate.conf:强制模式,对所有相关文件进行rotate。
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!