服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - Logrotate如何实现每小时切割日志文件

Logrotate如何实现每小时切割日志文件

2023-05-12 13:35奋斗的IT小白菜 Nginx

这篇文章主要介绍了Logrotate如何实现每小时切割日志文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、Logrotate背景介绍

logrotate 程序是一个日志文件管理工具。

用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。

我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过crontab 定时任务。

1.1 安装

一般在服务器初始化的时候这些工具都已经存在的,但是为了保险,还是手动安装一下:

?
1
yum -y install logrotate

服务简单的说明:

服务的主配置文件:/etc/logrotate.conf

Logrotate如何实现每小时切割日志文件

在主配置中可以看到 include /etc/logrotate.d 说明我们可以将用户定义的配置直接放到这下面,系统会自动为我们执行。

当然,系统的并不能很好的满足我们需求。

二、logrotate配置介绍

再看看配置模板:

?
1
2
3
日志文件绝对路径 {
    各种参数...
}

参数包含:

参数 说明
daily 每天轮替一次
weekly 每周轮替一次
monthly 每月轮替一次
yearly 每年轮替一次
rotate 保留几个轮替日志文件
ifempty 日志没有内容的时候也进行轮替
notifempty 若日志为空,则不进行轮替
create 旧日志文件轮替后创建新的日志文件
size 日志达到多少后进行rotate
minsize 文件容量一定要超过多少后才进行rotate
nocompress 轮替但不进行压缩
compress 压缩轮替文件
dateext 轮替旧日志文件时,文件名添加-%Y %m %d形式日期,可用dateformat选项扩展配置。
dateformat .%s 对日期进行格式定制
nodateext 旧日志文件不使用dateext扩展名,后面序数自增如"*.log.1"
sharedscripts 作用域下文件存在至少有一个满足轮替条件的时候,执行一次prerotate脚本和postrotate脚本。
prerotate/endscript 在轮替之前执行之间的命令,prerotate与endscript成对出现。
postrotate/endscript 在轮替之后执行之间的命令,postrotate与endscript成对出现。
olddir 将轮替的文件移至指定目录下
missingok 如果日志文件不存在,继续进行下一个操作,不报错

三、实现每小时切割日志文件

3.1、添加 logrotate 配置文件

?
1
vim /etc/logrotate.d/nginx

内容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/data2/data/cp*log/cp.log
 {
copytruncate   
rotate 87600
missingok
ifempty
dateext
dateformat -%Y%m%d-%H
sharedscripts
postrotate
    if [ -f /usr/local/openresty/nginx/logs/nginx.pid ]; then
        kill -USR1 `cat /usr/local/openresty/nginx/logs/nginx.pid`
    fi
endscript
}

3.2 执行命令

?
1
2
 //手动执行一次轮替:
 /usr/sbin/logrotate -vf /etc/logrotate.d/nginx

 

执行命令

?
1
logrotate [-dv] [-f|--force] [-s|--state statefile] config_file ..

执行命令选项

?
1
2
3
4
5
6
7
8
9
10
11
# logrotate --help
Usage: logrotate [OPTION...] <configfile>
  -d, --debug              Don't do anything, just test (implies -v) 不做实际处理,仅调试
  -f, --force              Force file rotation 强制执行,忽视参数要求
  -m, --mail=command        Command to send mail (instead of `/bin/mail') 发送mail
  -s, --state=statefile    Path of state file 查看状态文件
  -v, --verbose            Display messages during rotation 轮替一次,并显示轮替过程信息
  --version                Display version information 显示logrotate版本
Help options:
  -?, --help                Show this help message
  --usage                  Display brief usage message

3.3加入定时任务

?
1
crontab -e

每小时的59分进行切割 内容如下:

?
1
2
# Logrotate
59  * * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx

这里只简单地介绍该种定时任务配置。

?
1
2
3
4
5
6
7
#格式
*(分钟) *(小时) *(天) *(月) *(周几) 用户 命令
# 若分钟位值为 *,表示0-59之间的任意有效值;
# 若分钟位值为 1,表示每小时的第1分钟;
# 若分钟位值为 */5,表示每5分钟
# 若分钟位值为10,20 表示每小时的第10分钟和第20分钟
# 若分钟位值为10-12 表示每小时的第10、11、12分钟

效果如下:

Logrotate如何实现每小时切割日志文件

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_36470898/article/details/105978773

延伸 · 阅读

精彩推荐
  • NginxNginx启动SSL功能,并进行功能优化详细介绍

    Nginx启动SSL功能,并进行功能优化详细介绍

    这篇文章主要介绍了Nginx启动SSL功能,并进行功能优化详细介绍的相关资料,需要的朋友可以参考下...

    Nginx教程网3772021-12-03
  • Nginx一次nginx 504 Gateway Time-out错误排查、解决记录

    一次nginx 504 Gateway Time-out错误排查、解决记录

    这篇文章主要介绍了一次nginx 504 Gateway Time-out错误排查、解决记录,经过反复检查,发现造成这个问题的原因就是PHP的CURL没有设置超时时间,解决办法只要设置...

    nginx技术网5192019-10-18
  • NginxNginx配置ssl证书(https)的全过程

    Nginx配置ssl证书(https)的全过程

    这篇文章主要介绍了Nginx配置ssl证书(https)的过程,在文中大家需要特别注意,如果有防火墙的话,记得开通443端口,本文给大家介绍的非常详细,需要的朋友...

    喜枝儿3522022-11-02
  • NginxNginx反向代理学习实例教程

    Nginx反向代理学习实例教程

    nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可...

    Leida_hzm4152021-11-09
  • NginxLinux Nginx VPS下简单解决CC攻击

    Linux Nginx VPS下简单解决CC攻击

    Linux Nginx VPS下简单解决CC攻击,使用Nginx与php的朋友可以参考下。 ...

    服务器之家4932019-10-10
  • NginxCentOS利用Nginx搭建下载功能服务器

    CentOS利用Nginx搭建下载功能服务器

    这篇文章主要介绍了CentOS利用Nginx搭建下载功能服务器,需要的朋友可以参考下 ...

    mdxy-dxy3722019-11-29
  • NginxELK监控nginx日志的整体流程

    ELK监控nginx日志的整体流程

    这篇文章主要介绍了ELK监控nginx日志总结,整体流程是先把logstash启动,读取nginx日志数据存储到ES中,再用kibana进行统计以及可视化,本文给大家介绍的非常...

    andandan8152022-07-28
  • NginxNginx源码安装的方法步骤

    Nginx源码安装的方法步骤

    这篇文章主要介绍了Nginx源码安装的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    xyang09175602019-12-24