日志管理 之 配置与使用logrotate

什么是logrotate

logrotate是对日志文件做轮换。就是把现在的log命名为log.1,然后继续写log。如果存在log.1就命名log.1为log.2然后命名log为log.1,依此类推,但并非没有尽头。这个尽头就是您在logrotate的配置文件中的定义,我的系统默认的是到4。那么对log.4做什么操作呢?删除。 

syslogd是daemons方式运行的; 
logrotate是按计划运行的。 

正如在上面5.1中所说的,logrotate的主要配置在/etc/logrotate.conf中设置,而/etc/logrotate.d中的文件是对/etc/logrotate.conf的补充。或者可以看作为了不使/etc/logrotate.conf过大而设置。logrotate的写法: 

代码: 

把logfile(s)写在前面,包含文件的绝对路径,可以使用空白字元分隔多个log,也可以使用统配符置换; 
用 { } 包含所有设定; 
一般包括: 
prerotate:  在启动 logrotate 之前执行的命令,比如 /usr/bin/charrt -a /var/log/logfile; 
postrotate:在执行了 logrotate 之后执行的命令,比如 /usr/bin/charrt +a /var/log/logfile; 
您可以设定执行如上两个动作,也可以不设定,这依赖于您的需要。 

在prerotate与postrotate之间的动作有: 
weeky #每个星期执行一次 
rotate 4 #保留四个日志 
create #logratoe之后再建立日志 
compress #rotate之后的日志是否压缩 
include /etc/logrotate.d #包含/etc/logrotate.d目录下面的轮换设置 


如果您自己在/etc/logrotate.d下写了自己的轮换设置可以使用 

代码: 
logrotate -f yourfile 

来测试。 

可以打开它的配置文件进行编辑

vim /etc/logrotate.conf

详细的参数说明可以看它的man page,我的配置如下:

/path_to_app/log/production.log {
daily   #按日阶段
missingok
rotate 7  #保留7天
compress  #压缩
delaycompress #不压缩前一个(previous)截断的文件(需要与compress一起用)
dateext  #增加日期作为后缀,不然会是一串无意义的数字
copytruncate  #清空原有文件,而不是创建一个新文件
}

保存之后运行:

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

新的配置就能生效了。

不光对rails应用的log可以这么做,任何日志拿来给logrotate处理,都一视同仁。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值