定时任务完成nginx日志切割

作者: 温新

分类: 【Nginx】

阅读: 1584

时间: 2021-10-01 13:07:46

作者:温新

时间:2021-02-26

为什么要对Nginx日志进行切割

Nginx安装完成之后如果不注意对日志文件进行处理,那么日志文件就会越来越大,日志管理太大不方便进行管理而且严重影响服务器效率,因此必须定时对日志进行管理。对日志进行和管理通常有两种方式,一种是手动进行日志切割;另一种是使用定时任务进行管理。对于生产环境中,通过使用定时任务。下面对这两种方式进行简单的记录。

定时任务实现日志切割

第一步:创建脚本文件目录

mkdir /home/myscripts

第二步:编辑bash脚本对nginx日志进行切割

vim /home/myscripts/cut_nginx_log.sh

bash脚本

<span style="box-sizing: border-box; padding-right: 0.1px;">#!/bin/bash</span><br></br><span style="box-sizing: border-box; padding-right: 0.1px;"># 每天0点执行nginx日志切割的脚本任务</span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="box-sizing: border-box; padding-right: 0.1px;"># access_log日志存放位置</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">logs_path=<span style="">"/usr/local/nginx/logs/"</span></span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="">sudo mkdir</span> <span style="">-p</span> ${logs_path}<span style="">$(date</span> <span style="">-d</span> <span style="">"yesterday"</span> +<span style="">"%Y"</span><span style="">)</span>/<span style="">$(date</span> <span style="">-d</span> <span style="">"yesterday"</span> +<span style="">"%m"</span><span style="">)</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="">sudo mv</span> ${logs_path}access.<span style="">log </span>${logs_path}<span style="">$(date</span> <span style="">-d</span> <span style="">"yesterday"</span> +<span style="">"%Y"</span><span style="">)</span>/<span style="">$(date</span> <span style="">-d</span> <span style="">"yesterday"</span> +<span style="">"%m"</span><span style="">)</span>/<span style="">access_$(date</span> <span style="">-d</span> <span style="">"yesterday"</span> +<span style="">"%Y-%m-%d"</span><span style="">)</span>.<span style="">log</span></span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="box-sizing: border-box; padding-right: 0.1px;"># 进行切割日志</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="">kill -USR1</span> <span style="">`cat</span> /usr/local/nginx/logs/nginx.<span style="">pid</span><span style="">`</span></span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span>

第三步:执行cut_nginx_log.sh

bash cut_nginx_logs

第四步:编写一个每天0点执行的定时任务

crontab -e

编写如下内空

0 0 * * * /bin/bash /home/myscripts/cut_nginx_logs.sh

这样就完成了。

手动进行日志切割

第一步:查看

<span style="box-sizing: border-box;padding-right: 0.1px">cd /usr/local/nginx/logs/</span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">[root@DESKTOP-SFCAA6T-wsl logs]# ll -h</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">total 20K</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">-rw-r--r-- 1 root  root 4.4K Feb 26 01:18 access_.log</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">-rw-r--r-- 1 nginx root    0 Feb 26 22:03 access.log</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">-rw-r--r-- 1 nginx root 3.6K Feb 26 22:03 error.log</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">-rw-r--r-- 1 root  root    4 Feb 26 21:57 nginx.pid</span>

第二步:重命名当前日志文件

 mv access.log "access.log_$(date "+%Y-%m-%d")"

第三步:发送重新加载日志的信号进行生成新的日志文件

<span style="box-sizing: border-box;padding-right: 0.1px"># 方式一</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">/usr/local/nginx/sbin/nginx -s reopen</span><br></br><span style="padding-right: 0.1px; box-sizing: border-box;"></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"># 方式二</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`</span>

如此,手动进行日志切割也就完成了。

我是温新

每天进步一点点,就一点点

请登录后再评论