架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10513|回复: 1

[Web] 【实战】Nginx 日志拆分和删除

[复制链接]
发表于 2020-6-13 22:52:07 | 显示全部楼层 |阅读模式
需求,每天将nginx的日志根据当前日期拆分,每天一个文件,定时删除超过30天的文件,也就是只保留一个月的日志。

编写nginx日志拆分shell脚本如下:

其中 logs_path pid_path 路径要根据自己的实际情况添加。

可以通过 nginx.conf 文件查看 pid 文件的路径,也可以通过如下命令查找:

命令简单介绍

USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。

将脚本文件上传到自己服务器(随便那个目录即可)

赋予脚本执行权限



测试脚本


如果执行报错,可参考如下修复:

/bin/bash^M: bad interpreter: No such file or directory
https://www.itsvse.com/thread-9258-1-1.html

QQ截图20200613224955.jpg

最后,安装 crontab 服务,添加定时任务即可!
每天凌晨2点执行日志分割脚本规则:

【实战】CentOS 7 使用 crontab 定时执行任务
https://www.itsvse.com/thread-9280-1-1.html

附上sh脚本:

游客,如果您要查看本帖隐藏内容请回复





上一篇:/bin/bash^M: bad interpreter: No such file or directory
下一篇:【实战】nginx 高可用负载均衡配置
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-6-12 21:50:10 | 显示全部楼层
直接在nginx配置文件中,配置日志循环,而不需使用logrotate或配置cron任务。需要使用到$time_iso8601 内嵌变量来获取时间。$time_iso8601格式如下:2015-08-07T18:12:02+02:00。然后使用正则表达式来获取所需时间的数据。


码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 01:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表