LogRotate 切割 Nginx 日志

news/2024/9/19 16:17:08/文章来源:https://www.cnblogs.com/cheyunhua/p/18304007

 

发布于 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 # 不进行压缩,想压缩的话,使用 compresscreate 0640 root root # 权限 用户 组olddir /usr/local/nginx/logs/days # 切割后日志的存放路径sharedscripts # 这个很关键,增加这句,那么下面的命令在处理完所有日志后执行一次# 如果没有这句,那么处理完一个日志,执行一次下面的命令postrotateif [ -f /usr/local/nginx/logs/nginx.pid ]; thenkill -USR1 `cat /usr/local/nginx/logs/nginx.pid`fiendscript
}
  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,如有侵权请联系 cloudcommunity@tencent.com 删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL Server中Upsert的三种方式(转载)

本文介绍了SQL Server中Upsert的三种常见写法以及他们的性能比较。SQL Server并不支持原生的Upsert语句,通常使用组合语句实现upsert功能。假设有表table_A,各字段如下所示:int型Id为主键。方法1:先查询,根据查询结果判断使用insert或者updateIF EXISTS (SELECT 1 FROM ta…

2024/7/15 模拟赛 记录

noip NOI plus!几乎全员爆蛋( 本来能拿T1 20pts 暴力分的,但是居然CE了!!! max里两个参数,一个int一个longlong dev居然没报!!!光荣爆蛋(我估计是全场唯一一个没过编的:( 题解已存至网盘 https://fzoishare.xndxfz.com:7123/

[考试记录] 2024.7.15 csp-s模拟赛4

2024.7.15 csp-s模拟赛4 T1 传送带 题面翻译 有一个长度为 \(n\) 的一维网格。网格的第 \(i\) 个单元格包含字符 \(s_i\) ,是“<”或“>”。当弹球放在其中一个格子上时,它会按照以下规则移动: 如果弹球位于第 \(i\) 个格子上且 \(s_i\) 为 <,则弹球在下一秒会向左…

图论连通性

【学习笔记】图论连通性啊啊啊啊啊! 先引用一篇犇的:))) 缩点 弱连通: 对于有向图中两点 \(x\) 和 \(y\),它们在所有边为无向时存在一个环使它们相连。 强连通: 对于有向图中两点 \(x\) 和 \(y\),存在一个环使它们相连。 强连通子图: 对于有向图 \(G = (V, E)\),如果…

CS144 2024 winter 作业笔记

CS144 2024 winter 作业笔记 cs144 homework notes Created: 2024-05-14T10:24+08:00 Published: 2024-07-15T20:16+08:00 Categories: ComputerNetwork 目录checkpoint0配环境wegetreliable byte stream疑问checkpoint1checkpoint2bugs:checkpoint3model of input_Sendertimer…

解锁网络无限可能:揭秘微软工程师力作——付费代理IP池深度改造与实战部署指南

"揭秘微软工程师力作:付费代理IP池深度改造,四大模块精讲,含实战部署指南。掌握高效、稳定代理IP资源,解锁网络无限可能。从筛选管理到安全加密,详细步骤助您快速搭建专属代理网络。尊享付费阅读,获取深度技术洞察与实践指导。"基于付费代理的代理IP池 项目来源…

SpringIOC 容器

SpringIOC 容器 一、组件的概念 什么是组件? 常规的三层架构处理请求流程:划分为组件后:组件就是所有可以重用的java对象,组件一定是对象,对象不一定是组件二、Spring 进行组件管理 Spring框架替代了程序员原有的new对象和对象属性赋值的动作组件对象实例化组件属性赋值组…

javap和字节码

javap字节码的基本信息public class Test {private int age = 10;public int getAge() {return age;} }在 class 文件的同级目录下输入命令 javap -v -p Test.class 来查看一下输出的内容// 字节码文件的位置 Classfile /D:/Code/code/JavaCode/JavaSourceLearn/out/production…

Prometheus之钉钉

要实现Prometheus通过Alertmanager发送告警到钉钉,您可以按照以下步骤进行配置:创建钉钉机器人:首先,您需要在钉钉群中添加一个自定义机器人,并获取机器人的Webhook地址。创建机器人时,您可以设置安全验证方式,如加签。创建完成后,保存好Webhook地址和加签后的秘钥(如…

Java——N以内累加求和

2024/07/15 1.题目 2.错误 3.分析 4.答案 1.题目2.错误 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int sum = 0;while (N<=1000) {for (int i=1;i<=N;…

SQLCoder部署和应用

SQLCoder文生SQL部署和应用主页个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/SQLCoder简介 SQLCoder是一个用于生成SQL语句的工具,可以通过输入自然语言描述的需求,生成对应的SQL语句。SQLCoder支持连接数据库,对生成的SQL语句可…

NOIP 十三连测 #2 补题

逆天输出文件 .ans reverse 水题,随便自己造两组数据都能看出规律: \[\begin{cases}a_n a_{n - 2} \dots a_1 + a_2 a_4 \dots a_{n - 1}(n \mod 2 = 1) \\ a_n a_{n - 2} \dots a_2 + a_1 a_3 \dots a_{n - 1 } (n \mod 2 = 0)\end{cases} \]logistics 先求出最小生成树的 \…