码迷,mamicode.com
首页 > 其他好文 > 详细

实现Nginx的日志分割!

时间:2019-09-13 10:32:51      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:root   The   backup   查找   运行时   localhost   移动   str   mtime   

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

解决方法:创建一个新的目录,设置周期性计划定期的将旧目录里面的日志移动到新目录中,一般只保存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的日志分割!

标签:root   The   backup   查找   运行时   localhost   移动   str   mtime   

原文地址:https://www.cnblogs.com/cxm123123form/p/11516088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!