Nginx实战:3-日志按天分割

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、方式1:定时任务执行分割脚本

1.分割日志脚本

2.添加定时任务

二、方式2:logrotate配置分割

1.logrotate简单介绍

2.新增切割nginx日志的配置文件

3.备份日志压缩

4.分割日志后缀改为日期


前言

nginx日志文件建议按照天的维度进行分割,方便快速按照天的维度分析以及查找报错定位


一、方式1:定时任务执行分割脚本

1.分割日志脚本

创建一个sh文件,写入以下内容(个别内容根据自己nginx的情况修改)

我这里的文件为 /usr/local/nginx/log_bak.sh

#/bin/bash yesterday=$(date +%Y-%m-%d)  #取得服务器当前时间savepath_log=' /var/log/nginx_bak'#分割后的日志文件保存目录(注意结尾目录斜杠去掉)nglogs='/usr/local/nginx/logs'  #nginx日志文件目录,具体根据实际地址替换(结尾目录斜杠去掉 以免与下面路径中的"/"重复)#判断分割日志保存目录是否存在不存在则创建 if [ ! -d ${savepath_log} ]   # 注意 语句之间 空格不可省略,这是bash脚本 不是php脚本那样随和 thenmkdir -p ${savepath_log}fi #通过mv命令将日志移动到分割后的日志目录里,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件。mv ${nglogs}/access.log  ${savepath_log}/access_${yesterday}.log  #具体根据你的实际日志文件名路径 进行修改access.log名字mv ${nglogs}/error.log  ${savepath_log}/error_${yesterday}.log  #具体根据实际日志文件名地址 修改error.log名字mv ${nglogs}/host.access.log  ${savepath_log}/host.access_${yesterday}.log 
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)  #通知nginx重新生成新的日志

2.添加定时任务

crontab -e 后添加下面内容

59  23  * * * /usr/local/nginx/log_bak.sh(自己写的脚本的路径)

这样每天的23点59就会将当天的日志进行备份,并生成新的日志文件继续记录访问日志

二、方式2:logrotate配置分割

1.logrotate简单介绍

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

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

yum install -y logrotate


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

rpm -ql logrotate

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

2.新增切割nginx日志的配置文件

在/etc/logrotate.d目录下新增nginx文件 

vi nginx 写入下面内容(我的日志文件目录是/data/wxl/nginx/logs/)

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

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

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

logrotate -f /etc/logrotate.d/nginx

3.备份日志压缩

如果分割后的日志想要压缩进行空间节约

可以加上下面配置

    compress           # 以gzip方式压缩nodelaycompress    # 所有分割后的文件都进行压缩

 推荐将 nodelaycompress 改为 delaycompress,这样分割后对最新的序号为1的文件不会进行压缩,对其他序号的文件进行压缩,这样可以方便我们查看最新的分割日志。

4.分割日志后缀改为日期

如果想要分割后的日志后缀为当天日志的日期,可以加上下面的配置

    dateext  # 切割后的文件添加日期作为后缀dateyesterday # 配合dateext使用,添加前一天的日期作为分割后日志的后缀dateformat -%Y-%m-%d  # 格式为2022-02-08

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Debezium发布历史120

原文地址: https://debezium.io/blog/2022/04/07/read-only-incremental-snapshots/ 欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯. Read-only Incremental Snapshots for MySQL April 7, 2022 by K…

第68讲表单验证实现

表单验证实现 Form 组件允许你验证用户的输入是否符合规范,来帮助你找到和纠正错误。 Form 组件提供了表单验证的功能,只需为 rules 属性传入约定的验证规则,并将 form-Item 的 prop 属性设置为需要验证的特殊键值即可。 const rulesref({u…

Vulnhub靶机:hacksudo-search

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:hacksudo-search(10.0.2.50) 目标:获取靶机root权限和flag 靶机下载地址:https://download.vulnhub.co…

软考 系统分析师系列知识点之信息系统战略规划方法(5)

接前一篇文章:软考 系统分析师系列知识点之信息系统战略规划方法(4) 所属章节: 第7章. 企业信息化战略与实施 第4节. 信息系统战略规划方法 7.4.3 战略集合转化法 战略目标集合转化法(Strategy Set Transformation&a…

ESP8266-01S模块连接服务器(ONENET)

ESP8266-01S模块连接服务器(ONENET) 固件烧录通过http协议连接onenet云平台 固件烧录 一般在esp8266到手之后会进行测试,以确保能用,该模块出厂时默认自带出厂固件的,但如果进行了开发即下载了自己写的程序&#xff0…

一句话总结Docker与K8S的关系

一句话总结:Docker只是容器的一种,它面向的是单体,K8S可以管理多种容器,它面向的是集群,Docker可以作为一种容器方案被K8S管理。下文继续具体介绍。 1、容器的核心概念 介绍这几个核心概念:OCI、CR、Runc、…

spark sql上线前的调试工作实现

背景 每个公司应该都有大数据的平台的吧,平台的作用就是可以在上面执行各种spark sql以及定时任务,不过一般来说,由于这些spark sql的上线不经过测试,所以可能会影响到生产的数据,这种情况下大数据平台提供一个上线前…

跟着pink老师前端入门教程-day23

苏宁网首页案例制作 设置视口标签以及引入初始化样式 <meta name"viewport" content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0"> <link rel"stylesheet" href"css/normaliz…

动态规划01 三步问题[C++]

​​​​​​ 图源&#xff1a;文心一言 上机题目练习整理&#xff0c;本篇作为动态规划的代码&#xff0c;因为做题入门很少找到带图的讲解&#xff08;难道是因为太简单&#xff0c;所以没有人嘛&#xff09;&#xff0c;所以干脆自己写一份&#xff0c;供小伙伴们参考~&am…

Blazor SSR/WASM IDS/OIDC 单点登录授权实例5 - Winform 端授权

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

js基础(1)

操作数组 数组.push() 将一个或多个元素添加到数组末尾&#xff0c;返回数组新长度 数组.unshift() 将一个或多个元素添加到数组末尾&#xff0c;返回数组新长度 数组.pop() 删除最后一个元素&#xff0c;返回该元素的值 更灵活的删除方法&#xff0c;删除指定元素 数组.spli…

01-Spring实现重试和降级机制

主要用于在模块调用中&#xff0c;出现失败、异常情况下&#xff0c;仍需要进行重复调用。并且在最终调用失败时&#xff0c;可以采用降级措施&#xff0c;返回一般结果。 1、重试机制 我们采用spring 提供的retry 插件&#xff0c;其原理采用aop机制&#xff0c;所以需要额外…

算法||实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度

实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度 线性结构&#xff1a; 数组&#xff1a;是一种线性表数据结构&#xff0c;它用一组连续的内存空间&#xff0c;来存储一组具有相同类型的数据。 查找数据 &#xff1a;随机访问 流程图 /** 查询元素下标…

【机器学习笔记】基于实例的学习

基于实例的学习 文章目录 基于实例的学习1 基本概念与最近邻方法2 K-近邻&#xff08;KNN&#xff09;3 距离加权 KNN4 基于实例/记忆的学习器5 局部加权回归5 多种回归方式对比6 懒惰学习与贪婪学习 ​ 动机&#xff1a;人们通过 记忆和行动来推理学习。 1 基本概念与最近邻方…

C++初阶之类与对象(中)——六个默认函数详细解析

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.构造函数 2.1构造函数的语法和特性 2.1.1语法 2.…

C++ dfs 的状态表示(五十一)【第十一篇】

今天我们接着学习dfs&#xff08;状态表示&#xff09;。 1.抽象形式的dfs 前面用到的 DFS 算法都是比较容易想象出搜索过程的&#xff0c;接下来我们看一些不那么容易想象搜索过程的 DFS 过程&#xff0c;这些问题我们称为抽象形式的 DFS。 来回顾一下上节课遇到的一个问题&a…

java 执行方式和类加载过程

java默认属于混合执行&#xff1a; 编译和解释并存 java先进行解释执行&#xff0c;遇到多次重复的代码会把它编程成可执行文件&#xff0c;方便下次直接执行。 可以通过VM参数来修改执行方式。 类加载过程

为什么IDM下载速度很慢,IDM下载速度很慢怎么办

为什么IDM下载速度很慢&#xff0c;IDM下载速度很慢怎么办 IDM采用的是多线程下载模式。 如果说单线程下载“一个人完成一项工作”&#xff0c;那多线程下载就是“多个人完成一项工作”。它能让用户从服务器获得更高的带宽&#xff0c;从而提高资源下载速度。一般IDM会默认使用…

MySQL篇----第十九篇

系列文章目录 文章目录 系列文章目录前言一、什么是存储过程?用什么来调用?二、如何通俗地理解三个范式?三、什么是基本表?什么是视图?四、试述视图的优点?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

【漏洞复现】狮子鱼CMS文件上传漏洞(image_upload.php)

Nx01 产品简介 狮子鱼CMS&#xff08;Content Management System&#xff09;是一种网站管理系统&#xff0c;它旨在帮助用户更轻松地创建和管理网站。该系统拥有用户友好的界面和丰富的功能&#xff0c;包括页面管理、博客、新闻、产品展示等。通过简单直观的管理界面&#xf…