数据库教程:图文详解nginx日志切割的实现

目录实现nginx的日志切割面试题讨论:总结实现nginx的日志切割(注:为什么要切割呢?因为当你用户访问量大的时候,可能日志也很大。)《1》:ll /usr/local/nginx/logs/ 查看

目录
  • 实现nginx的日志切割
  • 面试题讨论:
  • 总结

实现nginx的日志切割

(注:为什么要切割呢?因为当你用户访问量大的时候,可能日志也很大。)

《1》:ll /usr/local/nginx/logs/  查看日志 (注:有两个日志,一个是访问日志,另一个是错误日志。)

图文详解nginx日志切割的实现

《2》:tail -f /usr/local/nginx/logs/access.log  查看访问日志

图文详解nginx日志切割的实现

《3》:vim /opt/cut_nginx_log.sh  编写一个脚本

《4》:脚本内容:

#!/bin/bash     #cut_nginx_log.sh     datetime=$(date -d "-1 day" "+%y%m%d")     log_path="/usr/local/nginx/logs"     pid_path="/usr/local/nginx/logs/nginx.pid"     [ -d $log_path/backup ] || mkdir -p $log_path/backup     if [ -f $pid_path ]     then     mv $log_path/access.log $log_path/backup/access.log-$datetime     kill -usr1 $(cat $pid_path)     find $log_path/backup -mtime +30 | xargs rm -f     else     echo "error,nginx is not working!" | tee -a /var/log/messages     fi

图文详解nginx日志切割的实现

注释:

#!/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

(注:kill 信号,信号有64种。)

《5》:chmod +x /opt/cut_nginx_log.sh   给脚本添加执行权限

《6》:crontab -e   写计划任务

《7》:写入

*/5     *       *       *       *       /usr/sbin/ntpdate pool.ntp.org > /dev/null 2    >&1    0       0       *       *       *       /opt/cut_nginx_log.sh

图文详解nginx日志切割的实现

《7》:/opt/cut_nginx_log.sh  执行脚本

《8》:ls /usr/local/nginx/logs  查看日志目录下(注:下面中access.log是新的访问日志,backup里面是老的访问日志。)

图文详解nginx日志切割的实现

《9》:ls /usr/local/nginx/logs/backup/ 查看

图文详解nginx日志切割的实现

《10》:tailf /usr/local/nginx/logs/access.log   查看访问日志(注:tailf 是等同tail -f的)

图文详解nginx日志切割的实现

《11》:在浏览器中访问

《11》:tailf /usr/local/nginx/logs/access.log  在去访问,他下面会出现

图文详解nginx日志切割的实现

面试题讨论:

说明nginx的访问日志记录在 access.log文件中。

1、如果将access.log重命名为a.log时,新产生的日志写到哪儿?为什么?

答案:日志将会写入到a.log 文件中,因为重命名后文件的 inode,没有变化,文件系统是根据inode查找文件的。

2、如果此时将 nginx服务重启后,新产生的田志写到哪儿?为什么?

答案:日志将会写入到新的access.log文件中,因为重启时会加载nginx的配置文件,配置文件中是通过文件名指定日志的,所以会创建新的日志。

总结

到此这篇关于图文详解nginx日志切割实现的文章就介绍到这了,更多相关nginx日志切割内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多数据库技术:图文详解nginx日志切割的实现,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/1032231.html

(0)
上一篇 2022年1月16日
下一篇 2022年1月17日

精彩推荐