[log]利用logrotate对Linux log进行管理
转自:http://feikiss.iteye.com/blog/1402181
https://linux.cn/article-4126-1.html
Syslog-ng服务是Linux系统中重要的日志服务,搞过Linux下日志管理的大虾门肯定都熟悉这项服务,在此就不再赘述。现在谈一下对日志文件的管理问题。
Syslog-ng服务只提供对log进行接收以及再处理(继续分发或者存储),但并不对产生的log文件进行管理,这样导致的后果就是可能这个文件越来越大,在我们这个项目中,由于忘了对日志文件进行管理,结果导致这个日志文件20多G,囧,很有可能导致系统崩溃。
日志文件管理这项工作其实是由logrotate模块来负责。
填充文件
# head -c 10M < /dev/urandom > /var/log/log-file
对于logrotate可以参考官网, 上面有详尽的介绍,最常用的三个方式为:
- logrotate /etc/logrotate.conf:重新读取配置文件,并对符合条件的文件文件进行rotate。
- logrotate -d /etc/logrotate.conf:调试模式,输出调试结果,但并不执行。
- logrotate -f /etc/logrotate.conf:强制模式,对所有相关文件进行rotate。
至于logrotate对文件进行管理时的所要执行的规则,可以在/etc/logrotate.d文件夹下创建文件,logrotate会在执行的时候自动读取相应的规则,比如,我在/etc/logrotate.d/路径下新建了一个名为syslog的文件,其中的内容为:
/log/test.log
{
size 10M
create
start
rotate
compress
copytruncate
}
上面代码的意思为当文件/log/test.log的大小超过10M时就开始循环,允许logrotate创建文件,循环文件的开始为10,即文件为为test.log.10.gz,最多循环创建4个文件,即为test.log.13.gz,多于四个后开始在第一个上面循环,依次迭代。
这样在配置logrotate的规则的时候就相对非常灵活,当我需求改动,需要添加其他新的规则的时候,我就不必修改syslog文件中的规则,可以新创建一个文件,添加相应的规则即可。这种灵活的配置方式对编程来说是一大便利,对于编程来说就是更容易实现对规则的自动控制了。
另外的一个问题,logrotate规则配置好后怎么定时去执行呢?这个就可以交给Linux中的crontab来控制了,具体的crontab的配置可以参考官网,我这里给出我使用的demo:
执行:vi /etc/crontab
配置如下:
*/ * * * * root /sbin/logrotate /etc/logrotate.conf
表示每隔5分钟执行检查一次。
这样整个配置就基本上完成了。
- monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
- rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
- compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
- delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
- missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
- notifempty: 如果日志文件为空,轮循不会进行。
- create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
- postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。
[log]利用logrotate对Linux log进行管理的更多相关文章
- 利用logrotate将mysql log截断
https://blog.pythian.com/mysql-log-rotation/ 1.授权用户 CREATE USER 'log_rotate'@'localhost' IDENTIFIED ...
- 利用logrotate切割nginx的access.log日志
一.新建一个nginx的logrotate配置文件 /var/log/nginx/access.log { daily rotate compress delaycompress missingok ...
- linux log系统图
log系统图 先贴图,怎么样,效果还不错吧,根据个人理解画的,如果不行将就用着吧. 解说 syslog是一种机制,在wiki中说这种机制可以使用udp,tcp,unix socket等把日志记录在 ...
- /var/log目录下的Linux日志文件功能详解_转
摘自:http://www.niaoyun.com/help/application/386.html 学习linux应该知道日志文件的所在位置以及它们包含的内容,在系统运行正常的情况下学习了解这些不 ...
- linux log日志解析
linux log日志解析 其实,可以说成是监控系统的记录,系统一举一动基本会记录下来.这样由于信息非常全面很重要,通常只有 root 可以进行视察!通过登录文件(日志文件)可以根据屏幕上面的错误 ...
- Common Linux log files name and usage--reference
reference:http://www.coolcoder.in/2013/12/common-linux-log-files-name-and-usage.html if you spend lo ...
- 数据仓库001 - 复习Linux shell命令 - pwd mkdir mv tail -f xxx.log 和 ail -F xxx.log
1. [root@localhost ~]# 的含义 ? [登录的用户 机器的名称 家目录] 2. 查看当前光标所在的目录 pwd [root@localhost ~]# pwd /roo ...
- centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课
centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...
- 【转】如何利用logrotate工具自动切分滚动中的日志文件
FROM : http://www.2cto.com/os/201503/381812.html 在很多实际项目中,应用程序会持续写日志,如果程序代码中没有调用支持自动切分(如按filesize或da ...
随机推荐
- Android网络开发之HttpURLConnection
http是一个可靠的传输,建立在TCP/IP连接之上,缺省端口是80,其他端口号也可以用.Android可以用HttpURLConnection或HttpClient接口来开发http程序. http ...
- C#中的Invoke和BeginInvoke
一.Control#Invoke() 和Control#BeginInvoke() 在非UI线程中调用MessageBox.Show()结果是非模态对话框: 在UI线程中调用MessageBox.Sh ...
- CentOS上搭建Nginx + Mono 运行 asp.net[转]
http://www.linuxdot.net/ http://www.cnblogs.com/wander1129/archive/2011/12/16/mono.html 安装步骤: 一.获取开源 ...
- python学习笔记——多进程二 进程的退出
1 进程的退出函数的基础语法 1.1 进程的退出函数 进程的退出含有有os._exit([status])和sys.exit([status])两种,从数据包来看,该退出模块仅在linux或者unix ...
- SQL SERVER 2005允许自定义聚合函数-表中字符串分组连接
不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict ID NAME CATEGORY 1 RED COLOR ...
- Jmeter----逻辑控制器(Logic Controller)
前言: 1. Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”.意 ...
- RMAN备份时报“ORA-19504: failed to create file”和“ORA-27038: created file already exists”
RMAN> run { > allocate channel ch00 type disk; > backup format '/dbbackup/db_%T' database; ...
- 结构体位制 中存在 有符号 与 无符号 -- C
#include <stdio.h> #include <stdlib.h> #include <string.h> /* 有符号 结构体1 */ struct b ...
- print to console or file
/*----------------------------------------------------------------------*/ /* Debug for ...
- Hadoop2.x介绍与源代码编译
1.Hadoop 项目的四大模块 Hadoop Common: The common utilities that support the other Hadoop modules. Hadoop D ...