图文详解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的默认端口
Mar 31 Servers
基于Nginx实现限制某IP短时间访问次数
Mar 31 Servers
nginx反向代理时如何保持长连接
Mar 31 Servers
详解Nginx 工作原理
Mar 31 Servers
Nginx域名转发使用场景代码实例
Mar 31 Servers
教你快速开启Apache SkyWalking的自监控
Apr 25 Servers
tomcat下部署jenkins的方法
May 06 Servers
Nginx利用Logrotate实现日志分割
May 20 Servers
超越Nginx的Web服务器caddy优雅用法
Jun 21 Servers
Linux下搭建SFTP服务器的命令详解
Jun 25 Servers
阿里云服务器(windows)手动部署FTP站点详细教程
Aug 05 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 23 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
javascript中的几个运算符
2007/06/29 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
js阻止默认事件与js阻止事件冒泡示例分享 js阻止冒泡事件
2014/01/27 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
2017/04/04 jQuery
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
python之PyMongo使用总结
2017/05/26 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
kafka-python批量发送数据的实例
2018/12/27 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
python温度转换华氏温度实现代码
2020/12/06 Python
C#实现启动一个进程
2016/10/01 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
总会计师岗位职责
2014/02/19 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
会计求职信
2014/05/29 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
公司门卫岗位职责
2015/04/13 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
Vue vee-validate插件的简单使用
2021/06/22 Vue.js
python中的sys模块和os模块
2022/03/20 Python
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS