Nginx:Nginx日志切割方法
Nginx的日志文件是没有切割(rotate)功能的,但是我们可以写一个脚本来自动切割日志文件。
首先我们要注意两点:
1.切割的日志文件是不重名的,所以需要我们自定义名称,一般就是时间日期做文件名。
2.既然是自动切割日志文件,那当然需要定时任务来进行操作,但是这里还涉及一个问题,Nginx的日志是存储在一个文件的,我们要切割就要保证日志数据的完整性,确保得到想要日期的日志信息,这里有一个方法:向Nginx主进程发送USR1信号 ,以重新开启日志的方式记录所需的日志信息。
接下来就是创建脚本:
在Nginx的安装目录下创建nginx_log.sh脚本
# /opt/nginx/ 这是我的nginx安装目录,大家替换成自己的目录
vi /opt/nginx/nginx_log.sh
编写脚本如下:
#!/bin/bash #设置切割的日志文件存放目录
LOG_HOME="/opt/nginx/logs/" #设置切割的日志名称(这里用日期时间的命名方式)
LOG_PATH_BAK="$(date -d yesterday +%Y%m%d%H%M)".accesss.log #开始切割日志文件
mv ${LOG_HOME}/access.log ${LOG_HOME}/${LOG_PATH_BAK}.log #向nginx主进程发送信号 重新打开记录日志
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
脚本写完了,开始创建定时任务,这里用Linux自带的定时任务管理 crontab 命令
#创建系统定时任务
crontab -e
如下进行编辑:
#一分钟执行一次
*/1 * * * * sh /opt/nginx/nginx_log.sh
这里的Cron表达式设置的是一分钟执行一次,可以根据需要更改。
重启定时任务
service crond restart
接下来就可以等待一分钟看看是否生成日志信息:

至此完成!
Nginx:Nginx日志切割方法的更多相关文章
- Nginx Java 日志切割脚本
Nginx日志切割脚本: #!/bin/bash ########################################################################### ...
- nginx 的日志切割
nginx的日志切割脚本 说明:在nginx的配置文件中nginx.conf并没有定义access_log的位置, 在/usr/local/nginx/conf/vhost/下的配置文件中定义了acc ...
- Nginx定时日志切割
Nginx定时日志切割 现有的日志都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维 人员查看,所以我们可以通过把这个大的日志文件切割为多份不 ...
- Linux日志切割方法[Logrotate、python、shell实现方式]
Linux日志切割方法[Logrotate.python.shell实现方式] 对于Linux系统安全来说,日志文件是极其重要的工具.不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分 ...
- nginx的日志切割
nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析.以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的.下面来说说nginx日志切割. 如果我们使用的是yu ...
- Nginx常用日志分割方法
方式一: nginx cronolog日志分割配置文档,根据下面方法,每分钟分割一次NGINX访问日志. 1.nginx日志配置 access_log /var/log/nginx/access.lo ...
- Nginx log日志切割shell
#!/bin/bash#此脚本用于自动分割Nginx的日志,包括access.log和error.log#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx- ...
- Nginx设置日志分割方法
目标:nginx cronolog日志分割配置文档,每分钟分割一次NGINX访问日志. 大体步骤如下: 1.nginx日志配置 access_log /var/log/nginx/access.log ...
- Linux 日志切割方法总结--Logrotate
一.Logrotate 使用方法 对于Linux系统安全来说,日志文件是极其重要的工具.logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到&qu ...
随机推荐
- IT菜鸟之BIOS和VT
一.虚拟化:VT(Virtualization Technology) 二.BIOS (basic input output system基本输入输出系统) 主板优先启动--bios启动--bios开 ...
- linux 详解useradd 命令基本用法
linux 详解useradd 命令基本用法 时间:2019-03-24 本文章向大家介绍linux 详解useradd 命令基本用法,主要包括linux 详解useradd 命令基本用法使用实例.应 ...
- STM32定时器配置
void TIM1_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDe ...
- UnicodeDecodeError:'ascii' codec can't decode byte 0xe5 in position 89: ordinal not in range(128)
环境python2,在出现该错误的python文件,增加: import sys reload(sys) sys.setdefaultencoding('utf8') 重新运行,不再报错
- Configuration注解
1.说明 Configuration注解的出现就是为了替换xml文件 java配置是通过@Configuration和@Bean注解实现了 @Configuration注解,声明当前是一个配置类,相当 ...
- DMS是临时解决方案?
DMS是临时解决方案? Who Says DMS Is an Interim Solution? 现在是认真对待DMS驱动程序监控系统的时候了. 特斯拉(Tesla)在台湾高速公路上撞上翻倒卡车的镜头 ...
- Django(60)Django内置User模型源码分析及自定义User
前言 Django为我们提供了内置的User模型,不需要我们再额外定义用户模型,建立用户体系了.它的完整的路径是在django.contrib.auth.models.User. User模型源码分析 ...
- 自动化工具之Appium工具简单介绍
背景 自动化,性能测试,接口测试,开发平台等工作,到底测试的价值在哪里,其实价值来源不断充实与为大众服务,今天简单介绍ui小工具appium攻击. 简单介绍 Appium 是一个自动化测试开源工具,支 ...
- 『动善时』JMeter基础 — 48、使用JMeter自身代理录制测试脚本
目录 1.测试计划内包含的元件 2.HTTP代理服务器的设置内容 3.设置浏览器的代理服务器 4.录制脚本 5.查看录制的脚本 6.HTTP代理服务器的排除模式 7.保存脚本 录制脚本只不过是我们日常 ...
- LCD1602液晶显示模块的单片机驱动深入详解之软件篇(AVR)
LCD1602液晶显示模块的驱动虽然比七段数码管之类的显示要复杂一些,但实际上也并不是很难,最主要的还是初始化,为什么这么说呢?我们在调试一块新液晶屏的时候,都会先初始化看看有没有光标在闪,没有光标前 ...