Logrotate实现Catalina.out日志每俩小时切割示例
作者:小渣渣。 发布时间:2021-10-06 04:20:12
一.Logrotate工具介绍
Logrotate是一个日志文件管理工具,它是Linux默认自带的一个日志切割工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的,让日志切割实现按小时分割,按天分割等。
二.Logrotate运行机制
系统会定时运行logrotate,一般是每天一次。系统是这么实现按天执行的。crontab会每天定时执行/etc/cron.daily目录下的脚本,而这个目录下有个文件叫logrotate。
[root@test01 ~]# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
实际运行时,Logrotate会调用配置文件/etc/logrotate.conf
三.Logrotate的组成
/usr/sbin/logrotate #程序所在位置;
/etc/cron.daily/logrotate #默认让Cron每天执行logrotate一次;
/etc/logrotate.conf #全局配置文件;
/etc/logrotate.d/ #应用自个的配置文件存放目录,覆盖全局配置;
注意:logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。另外,如果/etc/logrotate.d/里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。
四.Logrotate的命令格式
logrotate [OPTION...] <configfile>
-d, --debug :debug模式,测试配置文件是否有错误。
-f, --force :强制转储文件。
-m, --mail=command :压缩日志后,发送日志到指定邮箱。
-s, --state=statefile :使用指定的状态文件。
-v, --verbose :显示转储过程。
例如:想强行切割日志文件,不等logrotate切割。
[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat #我是用来测试用的嘿嘿
注意:CentOS7 命令是在/usr/sbin/里。
五.常用配置参数说明
Logrotate功能的实现,最重要的就是它的配置参数
下面介绍下它常用的配置参数:
compress | 启用压缩,指的是轮替后的旧日志,这里默认用的是gzip压缩的 |
daily | 每天轮替 |
dateext | 使用当期日期作为命名格式 |
dateformat .%s | 配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s 这四个参数 |
ifempty | 即使日志文件是空的也轮替 |
将轮替后的文件发送到指定E-mail地址 | |
copytruncate | 用于还在打开中的日志文件,把当前日志备份并截断,是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。 |
monthly | 一个月轮替一次 |
nocompress | 如果在logrotate.conf中启用了压缩,这里是做不用压缩的参数 |
nomail | 不发送邮件到任何地址 |
notifempty | 如果日志是空的就不轮替(也就是空日志不切割) |
olddir + 目录 | 轮替后日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 |
rotate +次数 | 轮替最多保留之前的数据几次,超出的将被删除或邮件接收,设为0则不保存 |
size size | 当日志增长到指定大小的时候开始轮替 |
weekly | 如果当前的星期几比上次轮替的星期几少,或者过了一个多星期,就会发生轮替通常是在每周的第一天轮替,如果logrotate不是每天运行的,会在第一次有机会时进行轮替 |
yearly | 如果当前年份不同于上次轮替的年份,则进行日志轮替 |
Missingok | 如果日志丢失,不报错继续滚动下一个日志 |
六.安装配置Logrotate
#yum安装下
[root@test01 ~]# yum -y install logrotate
#机器已经装好tomcat,下面配置切割tomcat日志的配置文件
[root@test01 ~]# vim /etc/logrotate.d/tomcat
注意:logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。
日志文件的切割轮循设置在独立的配置文件中,它们是放在/etc/logrotate.d/目录下的。
[root@test01 ~]# mkdir -p /var/log/tomcat/oldlog
[root@test01 ~]# cat /etc/logrotate.d/tomcat
/usr/local/tomcat8/logs/catalina.out { #要切割的日志路径,如果是多个就用空格分隔
notifempty #如果日志是空的就不轮替(也就是空日志不切割)
rotate 5000 #轮替最多保留之前的数据5000次
missingok #如果日志丢失,不报错继续滚动下一个日志
compress #启用压缩,指的是轮替后的旧日志,这里默认用的是gzip压缩的
dateext #使用当期日期作为命名格式
dateformat .%Y%m%d-%H点 #配合dateext使用,紧跟在下一行出现,定义文件切割后的文件名,必须配合dateext使用,只支持 %Y %m %d %s
olddir /var/log/tomcat/oldlog #轮替后日志文件放入指定的目录
}
注意:我这个配置里没有设置多久切割一次,但是它也是一天切割一次,因为当/etc/logrotate.d/tomcat这个文件没有配置时,默认是每天定时执行/etc/cron.daily/logrotate这个文件,这个文件是一天一次的。
#强制执行切割,查看/var/log/tomcat/oldlog下是否有日志
[root@test01 ~]# /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat
reading config file /etc/logrotate.d/tomcat
olddir is now /var/log/tomcat/oldlog
Allocating hash table for state file, size 15360 B
Handling 1 logs
rotating pattern: /usr/local/tomcat8/logs/catalina.out forced from command line (5000 rotations)
olddir is /var/log/tomcat/oldlog, empty log files are not rotated, old logs are removed
considering log /usr/local/tomcat8/logs/catalina.out
log needs rotating
rotating log /usr/local/tomcat8/logs/catalina.out, log->rotateCount is 5000
Converted ' .%Y%m%d-%H点' -> '.%Y%m%d-%H点'
dateext suffix '.20181226-15点'
glob pattern '.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]点'
glob finding old rotated logs failed
fscreate context set to unconfined_u:object_r:usr_t:s0
renaming /usr/local/tomcat8/logs/catalina.out to /var/log/tomcat/oldlog/catalina.out.20181226-15点
compressing log with: /bin/gzip
set default create context to unconfined_u:object_r:usr_t:s0
set default create context
#查看切割结果
#把之前切割的删除了,因为再定时切割文件是相同的,还是catalina.out.20181226-15点.gz这个文件,所以不会切割成功。
[root@test01 ~]# rm -rf /var/log/tomcat/oldlog/catalina.out.20181226-15点.gz
[root@test01 ~]# ls /var/log/tomcat/oldlog/
[root@test01 ~]#
#设置定时任务,每一分钟切割一次(注意:日志里要有内容,因为前面定义空的日志文件是不切割的)
[root@test01 ~]# crontab –e
*/1 * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >>/var/log/tomcat/oldlog/cutting.log
#每俩小时切割一次
[root@test02 ~]# crontab -l
0 */2 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/tomcat >> /root/chenjiaxin/cutting.log
#查看定时切割的结果
当然,上面设置一分钟切割一次,是为了实验能尽快看到效果。实际是需要根据公司需要来设置多久来切割一次日志的!
来源:http://www.cnblogs.com/chenzhazha/archive/2018/12/27/10185212.html
猜你喜欢
- 注:只测试了了fcitx,没有测试ibus因为不是新手教程,所以安装sublime,fcitx,gcc等等的就不说了若看不懂请留言下面为实现
- 古往今来,神话一直都是华夏灿烂文化的瑰宝,给人们的外在世界缔造了一个美丽的梦。今天,game2平台斥资1500万,打造耗时3年,再现上古的不
- 1、网页使用框架框架内的内容通常不在搜索引擎抓取的范围之内。2、图片太多,文本太少3、提交页面转向另一网站搜索引擎可能完全跳过这个页面。4、
- 今天要介绍的是Godaddy的域名管理教程,详细步骤如下:1.登陆帐户2.点hosting,如图所示。点manageaccount3.在Se
- 对于绝大部份的网站来说,一个合理点击率就只在乎0.1-1%,我跟其他水帖不同,他们所说的是去优化你的广告位置,从而增加更多的点击。但对于我的
- 最新消息,美国主机商ixwebhosting推出中文客服,其中文站(cn.IXWebHosting.com)已经在网站顶部提示,“中文liv
- 我是来自创业资讯网的小编,今天我们来讲讲如果勾引蜘蛛, 让蜘蛛为我所用快速更新网站内容和快照,有很多网站在发布后, 百度谷歌的更新速度很慢,
- 电子商务的兴起,使的很多中小企业都拥有了自己的服务器。对内用来建立局域网,提升办公效率;对外建立网站,更为广泛地宣传企业产品和形象,争取更多
- 早报讯 昨(11)日,记者获悉,随着电子商务的发展,通过电子商务网络订房订票的游客逐渐增多。据数据分析,“黄金周&
- 安装好centos之后,接着来设置它的网络,因为我在家笔记本是用的无线,所以虚拟机也只能连无线了,百度了很多教程,因为刚刚学linux,所以
- 有GoDaddy主机用户问如何使用File Manager的幻灯片,其实很简单的,File Manager里的幻灯片特征在一个幻灯片里显示了
- 一、域名过期后第一阶段域名过期后1~45天内,将处于注册商保留状态whois英文状态:REGISTRAR-HOLD二、域名过期后第二阶段 注
- 虚拟化1、环境Centos7.3关闭selinux,关闭防火墙2、虚拟化环境配置2.1 kvm部署安装1、 VMware 配置桥接模式2、b
- 对于提高自己站点的访问量,最有效的办法是,在做好站点的同时,不放过每一次的宣传机会,永远记住,即使是滴水也能装满瓶子,而当我们容易看到某些经
- 似乎正应了那句“你不理财,财不理你!”,从来没有指望google adsense能给我赚到钱,事实上它也没给我带来财富。 八月份的
- 博客推广重要吗?如果问10个站长,相信10个站长都会回答重要。的确,博客推广已经成为免费网络推广方法中必不可少的一种推广手段了,不过要做好博
- 目前常用的文档格式有TXT、WORD、PDF等,对这些文档的搜索引擎优化方法比较简单,只要在文件标题和文档首页前面的一些文字信息中包含关键词
- 百度公司董事长兼CEO李彦宏(腾讯科技配图)腾讯科技讯(无忌)北京时间8月5日消息,据国外媒体报道,百度首席执行官李彦宏周四在接受彭博电视台
- 在这篇文章中以VMware14为例,Linux操作系统采用CentOS7进行讲解如何在虚拟机中安装Linux操作系统。一、选择创建新的虚拟机
- 最新消息,康盛创想(Comsenz)推出的Discuz! 7.1体验站(discuz.org)测试已经半个月,对于广大站长朋友普遍关心的新版