图文详解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中break与last的区别详析
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
Jul 07 Servers
OpenStack虚拟机快照和增量备份实现方法
Apr 04 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
Windows Server 2008 修改远程登录端口以及配置防火墙
Apr 28 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 Servers
详解Nginx的超时keeplive_timeout配置步骤
May 25 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 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
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
php伪静态之APACHE篇
2014/06/02 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
JS相册图片抖动放大展示效果的示例代码
2021/01/29 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
python中xrange用法分析
2015/04/15 Python
Python实现数据库编程方法详解
2015/06/09 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
科技之星事迹材料
2014/06/02 职场文书
六一活动主持词
2015/06/30 职场文书
小学总务工作总结
2015/08/13 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电