首页 > 系统相关 >LogRotate 切割 Nginx 日志

LogRotate 切割 Nginx 日志

时间:2024-07-15 21:29:58浏览次数:14  
标签:文件 切割 nginx Logrotate logrotate Nginx LogRotate 日志

 

发布于 2023-12-04 10:20:32 7140 举报 文章被收录于专栏:码农UP2U

一直以来做日志切割都是使用 shell + crontab 来搞,shell 脚本可以在网上找到各种版本的,改改就用了,懒省事。这样的做法很传统,却忽略了系统的给我们提供的优秀的工具 —— logrotate。

一、Logrotate 是什么

Logrotate是一个非常实用的工具,主要用于自动轮转、压缩和删除旧的日志文件,帮助保持系统日志文件的清洁和有序。这不仅可以节省磁盘空间,还可以提高系统的性能。Logrotate能够根据日志文件的修改时间、大小等条件,对日志文件进行轮转、压缩或删除操作。通过使用Logrotate工具,您可以轻松地管理日志文件,确保系统的正常运行和安全性。

二、Logrotate 安装

在大多数CentOS系统中,Logrotate已经默认安装。如果没有安装,您可以使用以下命令进行安装:

代码语言:javascript 复制
yum install -y logrotate

三、Logrotate 配置Nginx 日志切割

要使用Logrotate对Nginx日志进行切割,您可以按照以下步骤进行配置:

  1. 打开文本编辑器,进入/etc/logrotate.d/nginx文件。默认情况下,该文件应该是空的。
  2. 在文件中添加以下内容:
代码语言:javascript 复制
/usr/local/nginx/logs/*.log { # 这里的路径是要进行切割日志的路径
           daily  # 按天进行切割         
           missingok # 如果没有日志文件,不报错继续处理下一个日志
           rotate 180 # 保留180个日志文件
           dateext # 按照日志文件名+年月日的格式保存
           nocompress # 不进行压缩,想压缩的话,使用 compress
           create 0640 root root # 权限 用户 组
           olddir /usr/local/nginx/logs/days # 切割后日志的存放路径
           sharedscripts # 这个很关键,增加这句,那么下面的命令在处理完所有日志后执行一次
                         # 如果没有这句,那么处理完一个日志,执行一次下面的命令
          postrotate
                  if [ -f /usr/local/nginx/logs/nginx.pid ]; then
                          kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
                  fi
          endscript
}
  1. 保存并关闭文件。现在,Logrotate将根据配置自动对Nginx日志进行切割。

经过编辑和保存后,您可以检查Nginx日志切割的配置是否正确。使用以下命令来检查配置:

代码语言:javascript 复制
logrotate -d /etc/logrotate.d/nginx

如果配置正确,您将看到一条消息显示配置文件解析成功,并且没有错误或警告。这意味着您的配置是正确的,并且Logrotate将在指定的时间自动执行日志切割操作。

如果您想测试一下配置的效果,可以使用以下命令手动强制执行一次日志切割操作:

代码语言:javascript 复制
logrotate -f /etc/logrotate.d/nginx

执行后,请检查配置目录下是否存在切割后的日志文件。如果配置正确且测试执行成功,您将在指定的目录下看到切割后的日志文件。

四、Logrotate 其他

如果您想查看logrotate执行的时间,可以查看/etc/anacrontab文件。

如果您想查看logrotate执行的状态,可以查看/var/lib/logrotate/logrotate.status文件。这个文件记录了logrotate最近一次执行的状态信息,包括哪些日志文件被轮转、轮转的时间和日志文件的大小等信息。您可以使用文本编辑器打开该文件,查看其中的内容以获取有关logrotate执行状态的信息。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。 原始发表:2023-11-30,如有侵权请联系 [email protected] 删除

标签:文件,切割,nginx,Logrotate,logrotate,Nginx,LogRotate,日志
From: https://www.cnblogs.com/cheyunhua/p/18304007

相关文章

  • nginx生成自签名SSL证书配置HTTPS
    一、安装nginxnginx必须有"--with-http_ssl_module"模块查看nginx安装的模块:root@ecs-7398:/usr/local/nginx#cd/usr/local/nginx/root@ecs-7398:/usr/local/nginx#./sbin/nginx-Vnginxversion:nginx/1.20.2builtbygcc9.4.0(Ubuntu9.4.0-1ubuntu1~20.04.2)......
  • Springboot日志配置
    日志加载:org.springframework.boot.logging.AbstractLoggingSystem#initializeWithConventionsprivatevoidinitializeWithConventions(LoggingInitializationContextinitializationContext,LogFilelogFile){Stringconfig=getSelfInitializationConfig();......
  • nginx ./nginx -s reload 工作进程pid与实际不一致导致平滑重启报错
    某次修改nginx配置后使用./nginx-sreload重启nginx,结果报错,如图所示,去kill工作进程的时候显示找不到该进程原因是位于nginx/logs下的nginx.pid中的pid和实际不一致造成的nginx.pid文件是Nginxweb服务器在启动时创建的一个进程标识符(PID)文件。这个文件包含......
  • logging模块切割日志时:另一个程序正在使用此文件,进程无法访问。
    使用:  concurrent-log-handlerGITHUB:  https://github.com/Preston-Landers/concurrent-log-handler安装: pipinstallconcurrent-log-handlerimportloggingfromconcurrent_log_handlerimportConcurrentRotatingFileHandlerlogger=logging.getLogger(__name_......
  • springboot使用logback日志出现LOG_PATH_IS_UNDEFINED文件夹的问题
    logback现在基本上已经成为springboot日志框架中使用最多的日志实现,在使用中与各中间件集成的一些注意事项记录如下 一SpringBoot中logback读取application.properties(application.yml)中的属性其中使用的时候发现了一个问题,就是如果使用的lobback配置文件的名称是logb......
  • 6. 打印日志信息
    6.打印日志信息在CMake中可以用用户显示一条消息,该命令的名字为message:message([STATUS|WARNING|AUTHOR_WARNING|FATAL_ERROR|SEND_ERROR]"messagetodisplay"...)(无):重要信息STATUS:非重要信息WARNING:CMake警告,会继续执行AUTHOR_WARNING:CMake警告(dev),会继续执......
  • 从零手写实现 nginx-27-return 指令
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat手写nginx系列如果你对nginx原理感兴趣,可以阅读:从零......
  • ubuntu中nginx部署服务器后添加SSL证书解决SSL handshake failed问题
    文章思路:写这篇文章主要是本人在使用nginx部署好服务器后,采用浏览器打开服务器地址;在采用pyqt开发的软件中,采用QNetwork模块连接后,想下载服务器的zip压缩包时,发现QNetwork提示报了SSLhandshakefailed异常问题解决方式:添加SSL证书进行解决,目前要获取根证书有以下方式;(1)从证......
  • 在 Linux 中的 Nginx 上部署 Django 项目
    要在Linux中的Nginx上部署Django项目,一般需要以下步骤:安装必要的软件安装Python和相关依赖。安装Django项目所需的库。配置Django项目完成Django项目的开发和测试。配置项目的 settings.py 文件,例如设置数据库连接、静态文件路径等。安装和配置uWSGI......
  • Grafana+Loki+Promtail 日志监控
    Grafana+Loki+Promtail日志监控原创 Jruing 佛系内卷写代码 2024年07月06日17:30 北京 2人听过前置工作用户组(按需创建)GrafanaLokiLoki配置文件Promtail配置文件配置数据源创建仪表盘添加查询项 前置工作Centos7关闭防火......