图文详解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 URL重写rewrite机制原理及使用实例
Apr 01 Servers
Apache Calcite 实现方言转换的代码
Apr 24 Servers
教你快速构建一个基于nginx的web集群项目
Nov 27 Servers
Nginx实现会话保持的两种方式
Mar 18 Servers
Windows Server 2012配置DNS服务器的方法
Apr 29 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
May 30 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
Linux中各个目录的作用与内容
Jun 28 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
微信小程序常用的3种提示弹窗实现详解
2019/09/19 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
利用python求相邻数的方法示例
2017/08/18 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
python读取mysql数据绘制条形图
2020/03/25 Python
django项目中新增app的2种实现方法
2020/04/01 Python
python中os包的用法
2020/06/01 Python
高中毕业生自我鉴定
2013/11/03 职场文书
八年级美术教学反思
2014/02/02 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
教师四风问题整改措施
2014/09/25 职场文书
民主评议党员总结
2014/10/20 职场文书
文明单位汇报材料
2014/12/24 职场文书
停电通知范文
2015/04/16 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书