Linux日志系统-05:案例1-实现临时日志文件滚动分割

一、案例要求:

创建一个日志文件/tmp/test_logrotate.log,然后使用logrotate来管理日志,每天滚动一次,文件大小上限为10M,保留5个日志,旧日志用时间命名。

二、实现步骤

1、创建日志文件

touch /tmp/test_logrotate.log

2、创建logrotate子配置文件

vim /etc/logrotate.d/test_logrotate.conf

 

/tmp/test_logrotate.log{
    daily
    size 10M
    rotate 5
    dateext
    compress
}

3、测试1

(1)向test_logrotate.log文件中添加小于10M的内容

dd if=/dev/zero of=/tmp/test_logrotate.log bs=9M count=1
ls -lh /tmp/test_logrotate.log

 

(2)执行任务

logrotate /etc/logrotate.d/test_logrotate.conf
ls /tmp/test_logrotate*

出现错误:文件切割权限问题

[root@192 logrotate.d]# logrotate /etc/logrotate.d/test_logrotate.conf
error: skipping "/tmp/test_logrotate.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") 
Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

解决方法:
方法一:去掉对应日志父目录的“w”组权限 ---- g-w
方法二:在对应的logrotate配置文件中添加“su <dir_user> <dir_group>”

采用方法二解决:

再次执行下面命令,可知日志文件没有被分割,因为日志文件大小是9M,不足10M。

logrotate /etc/logrotate.d/test_logrotate.conf
ls /tmp/test_logrotate*

 

(3)向test_logrotate.log文件中添加大于10M的内容

dd if=/dev/zero of=/tmp/test_logrotate.log bs=11M count=1
ls -lh /tmp/test_logrotate.log

 

(4)执行任务

logrotate /etc/logrotate.d/test_logrotate.conf
ls /tmp/test_logrotate*

 4、测试2

(1)在配置文件中添加create参数

PS:create 0664 root root   #指定滚动后创建的新文件的权限为0644,数组为root,属组为root

(2)执行任务

 

PS:执行主配置文件也是可以把/tmp/test_logrotate.log分割成功,因为执行主配置文件会时会把所有配置文件(主配置文件+子配置文件)的任务都执行。

logrotate /etc/logrotate.conf

 5、日志文件的滚动方式:手动+自动

(1)手动:自己写脚本定义周期计划任务实现滚动
(2)自动:使用系统自定义的周期计划任务实现滚动

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏波.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值