图文详解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服务器添加Systemd自定义服务过程解析
Mar 31 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
nginx安装以及配置的详细过程记录
Sep 15 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
服务器SVN搭建图文安装过程
Jun 21 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
git stash(储藏)的用法总结
Jun 25 Servers
在虚拟机中安装windows server 2008的图文教程
Jun 28 Servers
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
Sep 23 Servers
nginx sticky实现基于cookie负载均衡示例详解
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中使用与Perl兼容的正则表达式
2006/11/26 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
jQuery MD5加密实现代码
2010/03/15 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
Vue中全局变量的定义和使用
2019/06/05 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
python实现在字符串中查找子字符串的方法
2015/07/11 Python
利用aardio给python编写图形界面
2017/08/21 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python中append实例用法总结
2019/07/30 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
简单英文演讲稿
2014/01/01 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
2015年双拥工作总结
2015/04/08 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
python实现网络五子棋
2021/04/11 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js