网站首页 > 精选教程 正文
最近线上系统跑的业务量有点上量,虽然系统性能是稳定的,但是却有另外一个问题,那就是日志文件越来越大,占用的磁盘空间就越来越大,这样经常会收到告警信息,不得不手动去清理这些日志文件,这样手动维护的服务是件很糟糕的事情,不过有这样一个工具,能够释放你的双手,让你不再为日志文件越来月膨胀进行苦恼,那就是logrotate!
许多Linux的发行版都会默认装有logrotate日志管理工具,如果没有可以通过命令yum -y install logrotate crontabs进行安装,安装完成后会有一个主配置文件logrotate.conf和一个配置目录logrotate.d,这样的结构是不似曾相识呀,对,就是和nginx的配置文件相似,来看一看它的目录结构:
我们输入man logrotate查看一些帮助信息,其中有一些示例如下:
首先要解释一下这些配置信息:
1、monthly:日志文件将按月轮循。其它可用值为'daily','weekly'或者'yearly'。
2、rotate 5:一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
3、compress:在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
4、delaycompress:总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
5、missingok:在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
6、notifempty:如果日志文件为空,轮循不会进行。
7、create 644 root root:以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
8、postrotate/endscript:在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
9、size:指定文件达到多少m时进行切割
知道了logrotate的配置文件里面的配置信息,下面就来动手试一试吧!
首先创建一个空的日志文件:
把这个日志文件用logrotate管理起来,在/etc/logrotate.d/文件夹下配置管理文件:
现在配置就是文件大于5m时进行切割,通过指令给test.log增加大小:head -c 10M < /dev/urandom > /var/log/testlog/test.log
通过命令logrotate -vf /etc/logrotate.d/test 手动执行一下刚才配置的切割规则,看生效了没有:
这样,这个日志文件就根据我们配置的规则,被logrotate管理起来了,不过以上的例子都是小小的测试一下,更多的功能和配置,请输入man logrotate进行参照和测试!
猜你喜欢
- 2024-10-11 Linux 命令工具小技巧系列之 split (大文件切割)
- 2024-10-11 ELK有坑,千万别踩 elk详解
- 2024-10-11 日志管理- Logrotate 日志切割和转存
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)