阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx日志切割

411次阅读
没有评论

共计 1631 个字符,预计需要花费 5 分钟才能阅读完成。

Nginx 是我们生产环境的主要入口,所有的请求都会在这里留下痕迹,所以会导致一个问题,它的日志文件会一天比一天的大。直到有一天你无法接受这个庞大的文件的时候,就你就会想到了切割文件的这个办法。

能想到切割日志的童鞋那肯定是对 Nginx 用的熟悉的不能再熟悉的了,所以这里我就不过多的阐述 Nginx 的应用了,只说一个点  -USR1 选项的用法

在没有执行 kill -USR1 `cat ${pid_path}` 之前,即便已经对文件执行了 mv 命令而改变了文件名称,nginx 还是会向新命名的文件”xxx.log_ 20130909”照常写入日志数据的。

原因在于:Linux 系统中,内核是根据文件描述符来找文件的

1、说说对 Linux 文件描述符的理解

文件描述符是 Linux 内核为每个打开的文件命名的一个整数标识。

Linux 内核为每一个进程生成 (或者说维护) 一个”文件描述符表”,这个文件描述符表记录的是“此进程所打开的文件(进行标识)”。

在这里的环境中,nginx 就是一个运行中的进程,这个进程早就打开了一个日志文件,在文件描述符表是记录了文件的。

即便日志文件的路径改变了,但是还是能够找到(根据文件描述符表可以定位)

2、说说脚本中 kill -USR $(cat /var/run/nginx.pid)语法的理解

当执行命令“kill -USR1 `cat ${pid_path}`”的时候,nginx.pid 文件中保存的其实就是一个数字(自己可以打开看一下,我这里是 894),

nginx 将其主进程的 pid (进程号)写入到了 nginx.pid 文件中,所以可以通过 cat 命令直接拿到其主进程号, 直接操作指定的进程号。

kill -USR $(cat /var/run/nginx.pid)就等同于

kill –USR1 894  #指定发信号 (USR1) 信号给这个进程编号。

3、说说脚本中 kill -USR1 `cat ${pid_path}语法的理解

在 Linux 系统中,linux 是通过信号与”正在运行的进程”进行通信的。Linux 系统中,也很多预定义好的信号,像 SIGHUP。USR1 是用户自定义信号。

可以理解为:进程自己定义接到这个信号该干嘛(也就是进程编写者自己确定收到这个信号干嘛还是什么都不做都行,完全交给开发人员自己决定)。

而在 nginx 中,它自己编写了代码处理当我接到 USR1 信号的时候,让 nginx 重新打开日志文件。

具体理解如下:

1、nginx 的主进程收到 USR1 信号,会重新打开日志文件(以 nginx 配置文件中的日志名称命名, 就是配置文件中 access_log 项所设置的值,如果文件不存在,会自动创建一个新的文件 xxx.log)。

2、然后把日志文件的拥有者改为“工作进程(worker 进程)”,目的是让 worker 进程就具备了对日志文件的读写权限(master 和 worker 通常以不同用户运行,所以需要改变拥有者)。

3、nginx 主进程会关闭重名的日志文件(也就是刚才使用 mv 命令重命名成 xxx.log_ 20130909.log 的文件),并通知工作进程使用新打开的日志文件(刚才主进程打开的文件 xxx.log)。

具体实现上更细化点就是,主进程把 USR1 信号发给 worker,worker 接到这个信号后,会重新打开日志文件(也就是配置文件中约定的 xxx.log)

#!/bin/bash
# 零点执行该脚本
#NGinx 日志文件所在目录
LOGS_PATH=/Disk/log/nginx
# 获取昨天时间 YYYY-MM-DD
YESTERDAY=$(date -d “yesterday” +%Y-%m-%d)
# 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
kill -USR1 $(cat /var/run/nginx.pid)

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/142802.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1631字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7819696
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件130k的star数!让电脑轻松管理安卓手机的神器

这个开源软件 130k 的 star 数!让电脑轻松管理安卓手机的神器 大家好,我是星哥。今天给大家安利一款宝...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...