首页 > 系统相关 >Nginx容器挂载日志卷的日志切割: logrotate

Nginx容器挂载日志卷的日志切割: logrotate

时间:2023-05-11 13:57:34浏览次数:50  
标签:文件 分割 nginx 转储 Nginx logrotate 日志

logrotate是一个日志文件管理工具, 用来把旧文件轮转、压缩、删除, 并且创建新的日志文件.

1). 功能: 配合crontab控制启动, 按配置定义的分割时间和保留分割文件数量来控制日志生成和删除.

2). 语法: logrotate [参数] <路径/配置文件> -d, --debug 调试模式,输出调度结果,并不执行. -f, --force 强制模式,对所有相差文件进行rotate.

3). 实例:

  mkdir -p /data/nginx/logs/old_log

  vim /data/nginx/nginx-logrotate.conf

/data/nginx/logs/*.log {
  #不压缩切割后的日志文件
  nocompress
  #按周来分割
  weekly
  #允许分割打开中的日志文件
  copytruncate
  #分割后的日志文件属性
  create 644 root root
  #空日志不处理
  notifempty
  #保存200个副本,即分割出来的旧日志文件数量
  rotate 200
  #指定分割的日志文件保存位置
  olddir /data/nginx/logs/old_log
  #忽略所有错误
  missingok
  #使用日期重命名分割后的文件
  dateext
  #分割后,执行的shell命令
  postrotate
    # 因为是容器挂载日志卷,则需要进入容器操作nginx进程,让它重新打开切割后生成的新日志文件
    # kill -USR1 $(cat /var/run/nginx.pid), 获取nignx的pid值
    # -USR2是指重加载nginx日志, 参考"nginx的HUB信令方式"
    docker exec kg-nginx bash -c "if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid); service nginx status; fi"
  endscript
}
​
# 配置文件中常用的一些选项:
#  compress:通过gzip 压缩转储旧的日志
#  nocompress:不需要压缩时,用这个参数
#  daily:指定转储周期为每天
#  weekly:指定转储周期为每周
#  monthly:指定转储周期为每月
#  copytruncate:用于还在打开中的日志文件,把当前日志备份并截断
#  nocopytruncate:备份日志文件但是不截断
#  create mode owner group:使用指定的文件模式创建新的日志文件
#  nocreate:不建立新的日志文件
#  ifempty:即使是空文件也转储,这个是 logrotate 的缺省选项
#  notifempty:如果是空文件的话,不转储
#  rotate count:指定日志文件删除之前转储的次数,0指没有备份,7指保留7个备份
#  olddir directory:转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
#  noolddir:转储后的日志文件和当前日志文件放在同一个目录下
#  missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误
#  dateext: 使用日期作为日志轮替文件的后缀,如secure-20130605
#  prerotate  ... endscript:在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
#  postrotate ... endscript:在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行 
#  sharedscripts:所有的日志文件都轮转完毕后统一执行一次脚本
#  size size:当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB

4). 检测配置文件语法 && 强制执行分割

  logrotate -d nginx-logrotate.conf

  logrotate -f nginx-logrotate.conf

5). 写入计划任务: 每天23点59分执行, 二选一即可

  echo "59 23 * * * root /usr/sbin/logrotate -f /data/nginx/nginx-logrotate.conf" >>/etc/crontab

  echo "59 23 * * * logrotate -f /data/nginx/nginx-logrotate.conf" >>/var/spool/cron/root

标签:文件,分割,nginx,转储,Nginx,logrotate,日志
From: https://www.cnblogs.com/zhaolongisme/p/17390828.html

相关文章

  • 使用 Lambda 函数将 CloudWatch Log 中的日志归档到 S3 桶中
    >作者:[SRE运维博客](https://www.cnsre.cn/)>博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)>文章地址:[https://www.cnsre.cn/posts/221205544069/](https://www.cnsre.cn/posts/221205544069/)>相关话题:[https://www.cnsre.cn/tags/aws/](https://www.cnsr......
  • nginx 访问域名跳转至域名后接目录
    要实现https://xxx.com/自动跳转至https://xxx.com/new,可以在Nginx的配置文件中添加以下重定向规则:server{listen80;listen[::]:80;server_namexxx.com;return301https://$server_name$request_uri;}server{listen443ssl;listen......
  • Golang刷题日志--岛屿问题
    1.给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例代码:import"fmt"funcnumIsIands(grid[][]byte)int{ //记录岛......
  • nginx反向代理
    简介​ 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代......
  • nginx:配置nginx访问php(nginx/1.24.0)
    一,配置nginx虚拟主机1,查看php-fpm使用的端口:[root@img~]#ss-lntp|grepphp如图:可以看到端口是90002,配置虚拟主机:如下:[[email protected]]#vifile.conf内容如下:server{    listen       80;    server_name  file.liuhongdi.com; ......
  • nginx stream 模块
    stream模块一般用于tcp/UDP数据流的代理和负载均衡,用来实现四层协议的转发可以通过stream模块代理转发TCP消息。ngx_stream_core_module模块由1.9.0版提供。1.nginx-V确保nginx安装了–with-stream如果没有,重新用yuminstallnginx-y安装2.安装yum-yinstallepel-releas......
  • 日志清理小脚本
    #!/bin/bash#获取日志目录大小,单位Gcur_file_size=`du-h--max-depth=1/oraclelog/archlog|awk'{print$1}'|sed's/G//g'`#获取日志文件占总磁盘大小比例size_ratio=`echo$cur_file_size1024|awk'{print$1/$2}'`#判断如果达到80%磁盘,则进行日志清理if_del=`echo......
  • GoAccess 分析nginx日志
    GoAccess分析nginx日志安装wgethttps://tar.goaccess.io/goaccess-1.7.2.tar.gztar-xzvfgoaccess-1.7.2.tar.gzcdgoaccess-1.7.2/./configure--enable-utf8--enable-geoip=mmdbmakemakeinstall1)InstallmissingpackagesPkginstallautoconflibtoolsautoma......
  • Rocky Linux:编译安装nginx 1.24.0(Rocky Linux 9.1)
    一,官网:http://nginx.org/如图:二,下载并解压下载:[root@imgnginx]#wgethttp://nginx.org/download/nginx-1.24.0.tar.gz解压:[root@imgnginx]#tar-zxvfnginx-1.24.0.tar.gz 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectfor......
  • haproxy开启日志
    haproxy开启日志vi/etc/haproxy/haproxy.cfg#添加配置globallog127.0.0.1local2infodefaultsmodehttplogglobal#开启日志功能systemctlrestarthaproxy.service#修改日志vi/etc/rsyslog.c......