图文详解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配置并兼容HTTP实现代码解析
Mar 31 Servers
nginx基于域名,端口,不同IP的虚拟主机设置的实现
Mar 31 Servers
nginx负载功能+nfs服务器功能解析
Feb 28 Servers
Nginx中使用Lua脚本与图片的缩略图处理的实现
Mar 18 Servers
Shell脚本一键安装Nginx服务自定义Nginx版本
Mar 20 Servers
CentOS7和8下安装Maven3.8.4
Apr 07 Servers
详解如何使用Nginx解决跨域问题
May 06 Servers
详解Nginx的超时keeplive_timeout配置步骤
May 25 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
Nginx如何配置根据路径转发详解
Jul 23 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
CentOS7设置ssh服务以及端口修改方式
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
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
JavaScript笛卡尔积超简单实现算法示例
2018/07/30 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
python字符串过滤性能比较5种方法
2017/06/22 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
理解python中生成器用法
2017/12/20 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
简单谈谈python基本数据类型
2018/09/26 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
详解python中eval函数的作用
2019/10/22 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
函授毕业自我鉴定
2013/12/19 职场文书
餐饮加盟计划书
2014/01/10 职场文书
文艺晚会主持词
2014/03/24 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
毕业论文致谢范文
2015/05/14 职场文书
元旦晚会开场白
2015/05/29 职场文书
2016年党员承诺书范文
2016/03/24 职场文书