Nginx与Tomcat日志切割(3)

当我们设置好日志按日进行切割的时候,具体的执行时间是在什么时候呢?我们不要以为是会在 24.00 的时候进行切割的,它进行切割的时间是随机的。这个随机值取决于 crond 服务的,最终会取决于文件 /etc/anacrontab ,

[root@localhost ~]# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs # 延迟时间 RANDOM_DELAY=45 # the jobs will be started during the following hours only 执行时间段 START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly

我们可以发现 定时任务是会在 3-22点的5分-45分里面进行日志切割。

生产环境中该如何定时日志分割

我们在实际的生产环境中,我们通常会进行按日进行日志分割,也就是我们希望在 24.00 进行前一天的日志分割,我们可以通过 crond 服务进行定时切割 (logrotate -f /etc/logrotate.d/tomcat ), 但是我们通常在很多应用中会有定时任务在 24.00进行执行,那个时间段也就会产生大量的日志,如果我们在此时切割,那么我们可能会导致比较多的重要的日志丢失(并且此时任务多,资源消耗多,切割也慢),那么我们建议先咨询开发,24.00 是否有大量定时任务,我们可以在 24.00之前几分钟或者之后几分钟 进行切割。这样就避免大量的日志丢失。

三、日志切割示例 Nginx 切一切

示例:Nginx 日志保存在 /opt/nginx/logs/,包含日志 access.log 和 error.log。

/opt/nginx/logs/* { compress compressext .gz copytruncate dateext notifempty maillast rotate 180 daily size 10M olddir /opt/logs/nginx missingok mail 888888@qq.com # 如果我们本地没有配置好发送邮件配置的话是发送不了邮件的。 } Tomcat 切一切

示例:Tomcat 日志保存在 /opt/tomcat/logs/,包含日志 catalina.out,其他日志会自动切割。

/opt/tomcat/logs/catalina.out{ compress compressext .gz copytruncate dateext notifempty maillast rotate 180 daily size 10M olddir /opt/logs/tomcat missingok mail 888888@qq.com # 如果我们本地没有配置好发送邮件配置的话是发送不了邮件的。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c4d38945351d40469f6f656de49357c0.html