logrotate日志轮转
问题
- 针对/var/log/admin.log设置轮转,要求如下
- 要求每天轮转一次、保留3个备份、启用压缩
- 日志不存在时忽略
- 当文件大于100k也达到一天时自动轮转
- 创建的新文件权限0600,所有者root,所属组root
方案
logrotate轮转优点:减小日志文件大小,降低分析难度、丢弃过期日志以节省空、结合cron计划任务每天执行。
/etc/cron.daily/logrotate:每日计划任务执行的脚本。
全局配置文件:/etc/logrotate.conf。
自定义轮转配置文件:/etc/logrotate.d/。
步骤
实现此案例需要按照如下步骤进行。
步骤一:针对/var/log/admin.log设置轮转,要求如下
主要实现以下要求:
每天轮转一次、保留3个备份、启用压缩
日志不存在时忽略
当文件大于100k也达到一天时自动轮转
创建的新文件权限0600,所有者root,所属组root
可以写在全局配置文件中也可以写在自定义配置文件中,推荐自定义配置文件。
命令操作如下所示:
[root@svr5 /]# cd /etc/logrotate.d/
[root@svr5 logrotate.d]# vim admin.log
[root@svr5 logrotate.d]# cat admin.log
/var/log/admin.log { //注意大括号要写全
daily //每天轮转一次
rotate 3 //保留3个备份
minsize 100k //文件大于100k也达到一天时间自动轮转
missingok //丢失不提示
compress // 轮转完的文件压缩
create 0600 root root //创建的新文件权限0600,所有者root,所属组root
}
[root@svr5 logrotate.d]#
测试可以强制轮转一次,命令操作如下所示:
[root@svr5 logrotate.d]# ls /var/log/admin.log
/var/log/admin.log
[root@svr5 logrotate.d]# logrotate -f /etc/logrotate.d/admin.log
[root@svr5 logrotate.d]# ls /var/log/admin.log*
/var/log/admin.log /var/log/admin.log.1.gz