实现Nginx的日志分割!

Posted cxm123123form

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现Nginx的日志分割!相关的知识,希望对你有一定的参考价值。

时间越久内存占用率越高,高并发量,会给服务器带来巨大的缓存压力

解决方法:创建一个新的目录,设置周期性计划定期的将旧目录里面的日志移动到新目录中,一般只保存30天内,30天后一律删除

[root@localhost ~]# date "+%Y%m%d"                                  //今天的时间
20190913
[root@localhost ~]# date -d "-1 day" "+%Y%m%d"                //昨天的时间
20190912

=====================================================================================

[root@localhost ~]# vim /opt/cut_nginx_log.sh

#!/bin/bash
#cut_nginx_log.sh

datetime=$(date -d "-1 day" "+%Y%m%d")        //时间,date -d "-1 day"代表日期减1
log_path="/usr/local/nginx/logs"             //日志的存放位置
pid_path="/usr/local/nginx/logs/nginx.pid"   //进程的PID号,有PID号代表 进程还活着
[ -d $log_path/backup ] || mkdir -p $log_path/backup   //如果$log_path/backup不是一个目录则创建$log_path/backup目录
if [ -f $pid_path ]                                //如果$pid_path是一个文件
then
mv $log_path/access.log $log_path/backup/access.log-$datetime  //那么移动旧日志的文件到新目录下以此来实现分割
kill -USR1 $(cat $pid_path)                                    //USR1代表信号,他会给进程传一个信号让进程生成一个新的日志
find $log_path/backup -mtime +30 | xargs rm -f                //查找30天前的日志并删除
else
echo "Error,Nginx is not working!" | tee -a /var/log/messages  //否则提示nginx is not working且追加到日志中
fi

[root@localhost ~]# chmod +x /opt/cut_nginx_log.sh
[root@localhost ~]# bash /opt/cut_nginx_log.sh
[root@localhost ~]# cd /usr/local/nginx/logs/
[root@localhost logs]# ls
access.log   backup  error.log  nginx.pid
[root@localhost logs]# ls backup/
access.log-20190912

[root@localhost ~]# crontab -e
crontab: installing new crontab
[root@localhost ~]# crontab -l
0    0   *    *    *     bash /opt/cut_nginx_log.sh            //每月每周每天的0时0分执行脚本     

 

 

当未运行时!

[root@localhost logs]# killall -9 nginx
[root@localhost logs]# bash /opt/cut_nginx_log.sh
/opt/cut_nginx_log.sh: 第 11 行:kill: (8282) - 没有那个进程
[root@localhost logs]# rm -rf /usr/local/nginx/logs/nginx.pid
[root@localhost logs]# bash /opt/cut_nginx_log.sh
Error,Nginx is not working!

 

以上是关于实现Nginx的日志分割!的主要内容,如果未能解决你的问题,请参考以下文章

Nginx服务优化日志分割

Nginx优化---日志分割

实现Nginx的日志分割!

Nginx优化——日志分割

nginx-日志-日志按天分割

Linux nginx日志按天分割实例