Nginx 日志分割文档说明 ---谷营中西软件科技园

1、要解决问题描述:
当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。
2、nignx没有自动分开文件存储日志的机制。由于nginx它不会帮你自动分文件保存。所以,需要自己编写脚本来实现。据说现在可以修改nginx的源码可以实现,但是太麻烦了。
3.首先我们需要创建名称为:nginx_log_xxx.sh 的shell脚本文件
4、编辑我们刚刚创建的脚本 vi nginx_log_xxx.log 并在脚本中输入一下文本

# /bin/bash
logs_path="/nas_iec/nginx_log/front/"
#以前的日志文件。
log_name="www_access_68.log"   
pid_path="/usr/local/nginx/logs/nginx.pid"
mv ${logs_path}${log_name} ${logs_path}${log_name}_$(date +%Y-%m-%d_%H%M%S).log
kill -USR1 `cat ${pid_path}`

解释一下脚本的内容:
    logs_path 就是我们日志存放的路径。
log_name 日志名称
pid_path  nginx.pid文件中保存的其实就是一个数字(自己可以打开看一下,我这里是24331),nginx 将其主进程的 pid (进程号)写入到了nginx.pid 文件中,所以可以通过cat命令直接拿到其主进程号,直接操作指定的进程号

这里写图片描述
分割备份的原理就是将原来的文件移动并且重新命名,然后利用liunx的定时命令达到定时分割备份日志的目的。
当执行命令“kill -USR1 cat ${pid_path}”的时候,nginx.pid文件中保存的其实就是一个数字(自己可以打开看一下,我这里是24331),nginx 将其主进程的 pid (进程号)写入到了nginx.pid 文件中,所以可以通过cat命令直接拿到其主进程号,直接操作指定的进程号。

kill -USR1 cat ${pid_path} 就等同于
kill –USR1 894 #指定发信号(USR1)信号给这个进程编号。
5.编辑好内容之后—————保存。
6.为shell脚本赋权限可以让脚本执行。
Chmod u+x nginx_log_xxx.log
这样我们就可以执行我们的脚本命令了。
7.然后我们就定时执行脚本
设置上面的shell脚本文件加入到定时任务中去。crontab是linux下面一个定时任务进程。开机此进程会启动,它每隔一定时间会去自己的列表中看是否有需要执行的任务。

crontab  -e
 * 00 * * * /root /nginx_log_xxx.sh

会打开一个文件,加入上面的代码
格式为 “分 时 日 月 星期几 要执行的shell文件路径”。用*可以理解成“每”,每分钟,每个小时,每个月等等。
我设置是在每天的凌晨12点运行nginx_log_xxx.sh脚本,脚本的内容就是重新生成一个新的日志文件。
Nginx的日志的配置文件:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值