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


Posted in Servers onJanuary 18, 2022

实现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日志切割内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
扩展多台相同的Web服务器
Apr 01 Servers
Nginx location 和 proxy_pass路径配置问题小结
Sep 04 Servers
Apache POI的基本使用详解
Nov 07 Servers
Z-Order加速Hudi大规模数据集方案分析
Mar 31 Servers
Apache Pulsar结合Hudi构建Lakehouse方案分析
Mar 31 Servers
Tomcat弱口令复现及利用
May 06 Servers
Nginx的gzip相关介绍
May 11 Servers
Windows server 2016服务器基本设置
Aug 14 Servers
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
Aug 14 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 #Servers
使用 Apache 反向代理的设置技巧
NGINX 权限控制文件预览和下载的实现原理
Nginx虚拟主机的搭建的实现步骤
Jan 18 #Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 #Servers
教你快速构建一个基于nginx的web集群项目
Nov 27 #Servers
Linux安装apache服务器的配置过程
Nov 27 #Servers
You might like
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php中stream(流)的用法
2014/03/25 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
javascript dom 操作详解 js加强
2009/07/13 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
js当一个变量为函数时 应该注意的一点细节小结
2011/12/29 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python全排列操作实例分析
2018/07/24 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
Python中的Cookie模块如何使用
2020/06/04 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
企业统计员岗位职责
2013/12/13 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
《识字五》教学反思
2014/03/01 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
Python+Tkinter制作专属图形化界面
2022/04/01 Python