龙空技术网

logrotate-日志分割

敬斌 393

前言:

今天姐妹们对“centos删除客户端日志”可能比较关怀,小伙伴们都需要知道一些“centos删除客户端日志”的相关内容。那么小编也在网上收集了一些对于“centos删除客户端日志””的相关知识,希望小伙伴们能喜欢,你们一起来学习一下吧!

关于日志分割

日志文件包含了程序运行过程中的信息,在排障过程中或者系统性能分析时经常被用到。但是大量的日志文件,无约束的增长不仅快速消耗磁盘空间,还非常不利于分析日志。

  logrotate是个十分有用的工具,它可以自动对日志进行截断或轮循、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/testfile.log日志文件每天轮循,并删除超过7天的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。

安装logrotate

系统版本说明

[root@bean ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)[root@bean ~]# uname -r3.10.0-514.26.2.el7.x86_64

默认centos系统安装自带logrotate,安装方法如下

[root@bean ~]# yum -y install logrotate crontabs 

软件包信息说明

[root@bean ~]# rpm -ql  logrotate/etc/cron.daily/logrotate/etc/logrotate.conf/etc/logrotate.d/etc/rwtab.d/logrotate/usr/sbin/logrotate/usr/share/doc/logrotate-3.8.6/usr/share/doc/logrotate-3.8.6/CHANGES/usr/share/doc/logrotate-3.8.6/COPYING/usr/share/man/man5/logrotate.conf.5.gz/usr/share/man/man8/logrotate.8.gz/var/lib/logrotate/var/lib/logrotate/logrotate.status

  logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,在/etc/logrotate.d/目录下。

实践配置logrotate

  我们创建一个10MB的日志文件/var/log/testfile.log。来测试一下logrotate来管理该日志文件。

首先创建一个日志文件,在其中填入一个10MB的随机数据文件。

[root@bean ~]# touch /var/log/testfile.log[root@bean ~]# head -c 10M < /dev/urandom > /var/log/testfile.log

  接下来配置logrotate来轮循该日志文件。创建一个配置文件。

[root@bean ~]# vim /etc/logrotate.d/testfile /var/log/testfile.log {    daily    rotate 7    compress    delaycompress    notifempty    missingok}

这里:

daily: 日志文件将按天轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。rotate 7: 一次将存储7个归档日志。对于第8个归档,时间最久的归档将被删除。compress: 在轮循任务完成后,旧的归档将使用gzip进行压缩。delaycompress: 总是与compress选项一起用,delaycompress选项指不将最近的归档压缩,压缩将在下一次轮循周期进行。notifempty: 如果日志文件为空,轮循不会进行。  missingok: 在日志轮循期间,任何错误将被忽略。

上面的模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。可以使用man logrotate查看帮助文档

最后我们测试一下我们的配置是否正常。

[root@bean ~]# logrotate -f /etc/logrotate.d/testfile[root@bean ~]# ll /var/log/testfile*-rw-r--r-- 1 root root        0 6月   6 00:01 /var/log/testfile.log-rw-r--r-- 1 root root 10485760 6月   6 00:01 /var/log/testfile.log.1[root@bean ~]# head -c 5M < /dev/urandom > /var/log/testfile.log[root@bean ~]# logrotate -f /etc/logrotate.d/testfile[root@bean ~]# ll /var/log/testfile*-rw-r--r-- 1 root root        0 6月   6 00:01 /var/log/testfile.log-rw-r--r-- 1 root root  5242880 6月   6 00:01 /var/log/testfile.log.1-rw-r--r-- 1 root root 10487378 6月   6 00:01 /var/log/testfile.log.2.gz

结束。

标签: #centos删除客户端日志