linux日志轮转功能

本文详细介绍了Linux系统中日志轮转的工作原理及配置方法,包括如何通过修改配置文件实现自定义轮转策略,以及如何利用logrotate命令进行日志文件的管理和维护。

日志的轮转是一种日志管理策略,可以简化管理。

以/var/log/messages日志文件为例:

先分四步讲解下轮转的过程。

1.系统只有messages文件,还没有轮转

touch messages

2.第一次轮转生成messages.1

mv messages messages.1

touch messages

3.第二次轮转生成messages.2

mv messages.1 messages.2

mv messages messages.1

touch messages

4.第三次轮转生成messages.3

mv messages.2 messages.3

mv messages.1 messages.2

mv messages messages.1

toouch messages

这样日志达到一定条件就会这样不断生成新的文件,可以看出,日志的轮转其本质就是旧文件的移动和新文件的创建。

----------------------------------------------------------------------

日志的轮转其主配置文件为/etc/logrotate.conf

[root@localhost ~]# cat /etc/logrotate.conf|grep -v ^# |grep -v ^$

weekly

rotate 4

create

include /etc/logrotate.d

/var/log/wtmp {

    monthly

    minsize 1M

    create 0664 root utmp

    rotate 1

}

全局配置:
 weekly :表示所有日志每周进行一次轮转
 rotate 4 :表示所有日志默认只保留一个旧文件
 create :由于旧文件被轮转了,所以新建一个日志文件来存储日志
 include /etc/logrotate.d :次配置文件所在目录
 
/var/log/wtmp为局部配置:

 monthly :表示所有日志每周进行一次轮转

 minsize 1M :轮转日志的最小大小

 create 0664 root utmp :创建文件时,指定权限、属主和属组

 rotate 1 :保留一个旧文件

这全局配置和局部配置就类似C++中类的继承。

----------------------------------------------------------------------

自定义日志轮转:

自定义日志轮转前要了解下面几个命令:

需要执行的外部命令放在sharedscripts和endscript两行之间

 prerotate : logrotate命令运行前执行脚本内容

 postrotate:logrotate命令运行后执行脚本内容

----------------------------------------------------------------------

下面说个实例:

配置/var/log/mytest.log日志文件记录所有日志,并加上高级权限a;

 echo "*.info/var/log/mytest.log">>/etc/syslog.conf

 /etc/init.d/syslog restart

 chattr +a /var/log/mytest.log

轮转配置

vim /etc/logrotate.d/mytest

 /var/log/mytest.log{

   mothly

   size=10M

   rotate 5

   compress压缩保存

 sharedscripts

   prerotate

   /usr/bin/chattr -a /var/log/mytest.log

 endscripts

 sharedscripts

   postrotate

     /usr/bin/kill -HUP syslog  以HUP方式从新加载服务,相当于从新读取配置文件,不改变进程id号

     /usr/bin/chattr +a /var/log/mytest.log

 endscripts

 }

最后可以用下这个命令:

[root@localhost logrotate.d]# logrotate -v /etc/logrotate.conf   测试有没有日志需要轮转-f 强制轮转

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值