图文详解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基于域名,端口,不同IP的虚拟主机设置的实现
Mar 31 Servers
Nginx配置https原理及实现过程详解
Mar 31 Servers
Nginx下配置Https证书详细过程
Apr 01 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Windows Server 2019 安装DHCP服务及相关配置
Apr 28 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Docker安装MySql8并远程访问的实现
Jul 07 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
在windows server 2012 r2中安装mysql的详细步骤
Jul 23 Servers
apache虚拟主机配置的三种方式(小结)
Jul 23 Servers
zabbix如何添加监控主机和自定义监控项
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简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php异常处理技术,顶级异常处理器
2012/06/13 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
zf框架的数据库追踪器使用示例
2014/03/13 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
vscode 远程调试python的方法
2017/12/01 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
学习心得体会
2014/01/01 职场文书
寒假实习自荐信
2014/01/26 职场文书
教师节商场活动方案
2014/02/13 职场文书
企业职业病防治方案
2014/05/29 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS
zabbix配置nginx监控的实现
2022/05/25 Servers