定时任务完成nginx日志切割

作者: 温新

分类: 【Nginx】

阅读: 1956

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

作者:温新

时间:2021-02-26

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

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

定时任务实现日志切割

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

mkdir /home/myscripts

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

vim /home/myscripts/cut_nginx_log.sh

bash脚本

#!/bin/bash
# 每天0点执行nginx日志切割的脚本任务

# access_log日志存放位置
logs_path="/usr/local/nginx/logs/"

sudo mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
sudo mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y-%m-%d").log


# 进行切割日志
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

第三步:执行cut_nginx_log.sh

bash cut_nginx_logs

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

crontab -e

编写如下内空

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

这样就完成了。

手动进行日志切割

第一步:查看

cd /usr/local/nginx/logs/

[root@DESKTOP-SFCAA6T-wsl logs]# ll -h
total 20K
-rw-r--r-- 1 root  root 4.4K Feb 26 01:18 access_.log
-rw-r--r-- 1 nginx root    0 Feb 26 22:03 access.log
-rw-r--r-- 1 nginx root 3.6K Feb 26 22:03 error.log
-rw-r--r-- 1 root  root    4 Feb 26 21:57 nginx.pid

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

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

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

# 方式一
/usr/local/nginx/sbin/nginx -s reopen

# 方式二
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

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

我是温新

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

请登录后再评论