定时任务完成nginx日志切割
作者:温新
时间: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`
如此,手动进行日志切割也就完成了。
我是温新
每天进步一点点,就一点点
请登录后再评论