linux环境下使用logrotate切分nginx日志

logrotate 是一个 Linux系统日志的管理工具。可以对单个日志文件或者某个目录下的文件按时间 / 大小进行切割,压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。

主流 Linux 发行版上都默认安装有 logrotate 包,如果你的 Linux 系统中找不到 logrotate, 可以使用 apt-get 或 yum 命令来安装。

yum install -y logrotate

下面命令可以查看是否安装了

rpm -ql logrotate

/etc/logrotate.conf是主配置文件,/etc/logrotate.d 文件夹下面是自定义的配置文件

比如文件名为:nginx

vi nginx

/var/log/nginx/error.log {
    daily
    dateext
    dateyesterday
    dateformat -%Y-%m-%d
    rotate 7
    create
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}

/var/log/nginx/access.log {
    daily
    dateext
    dateyesterday
    dateformat -%Y-%m-%d
    rotate 7
    create
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}

这里对error.log和access.log分别设置拆分。

参数说明如下:

/data/nginx/logs/*.log {
    daily        # 按天分割              
    rotate 30    # 保留30个文件 
    create
    sharedscripts   # 所有的文件切割之后只执行一次下面脚本,通知nginx重新打开新的日志文件进行后续写入
    postrotate
        if [ -f /data/nginx/logs/nginx.pid ]; then
            kill -USR1 `cat /data/nginx/logs/nginx.pid`  # 通过USER1信号通知nginx重新打开日志文件
        fi
    endscript
}

 这样就会每天定时分割日志了

也可以手动执行命令测试一下能否正常分割日志

logrotate -f /etc/logrotate.d/nginx

执行后查看日志文件:

# ll -h /var/log/nginx
-rw-r--r-- 1 nginx root    0 7月  22 14:41 access.log
-rw-r--r-- 1 nginx root  16M 7月  22 14:41 access.log-2024-07-21
-rw-r--r-- 1 nginx root 268M 7月  22 14:41 error.log
-rw-r--r-- 1 nginx root  15M 7月  22 03:32 error.log-2024-07-21

可以看到,在日志文件的基础上复制出了一个带日期的日志文件。

相关推荐

  1. linux环境使用logrotate切分nginx

    2024-07-22 16:34:05       19 阅读
  2. linux 查看nginx

    2024-07-22 16:34:05       34 阅读
  3. 使用GoAccess分析nginx

    2024-07-22 16:34:05       28 阅读
  4. Linux环境通过journal命令查看和管理

    2024-07-22 16:34:05       54 阅读
  5. Nginx

    2024-07-22 16:34:05       33 阅读
  6. C++linux使用clog和重定向实现写

    2024-07-22 16:34:05       20 阅读
  7. 通过Nginx实现在浏览器查看Linux服务器

    2024-07-22 16:34:05       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 16:34:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 16:34:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 16:34:05       45 阅读
  4. Python语言-面向对象

    2024-07-22 16:34:05       55 阅读

热门阅读

  1. css中浮动的原理

    2024-07-22 16:34:05       15 阅读
  2. c# 索引器

    2024-07-22 16:34:05       17 阅读
  3. 初入C语言的主要难点

    2024-07-22 16:34:05       17 阅读
  4. PostgreSQL 慢 SQL 排查

    2024-07-22 16:34:05       19 阅读
  5. YARA:第十六章-libyara之C API手册(威胁检测)

    2024-07-22 16:34:05       15 阅读
  6. ipython 的使用技巧的整理

    2024-07-22 16:34:05       17 阅读
  7. sklearn基础教程

    2024-07-22 16:34:05       17 阅读
  8. 自然语言处理基础【1】词嵌入

    2024-07-22 16:34:05       14 阅读