Ngnix的日志管理和用定时任务完成日志切割

一、日志管理

  先来看看ngnix的配置文件的server段

  

  接下来我们解释一下默认格式的具体意思

    #log_format main ‘$remote_addr(远程IP) - $remote_user(远程用户) [$time_local](访问时间) "$request"(请求方式) ‘
    # ‘$status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等) "$http_referer"(referer来源信息) ‘
    # ‘"$http_user_agent(用户代理)" "$http_x_forwarded_for(被转发的请求的原始IP)"‘;

    注:(1)http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

      (2)日志的格式我们也可以自己定义

  我们具体看一下日志记录的信息

  Ngnix允许针对不同的server做不同的log,接下来我们自己做一个

    

  保存并退出,然后重新加载一次配置文件

       

    因为我们没开启日志格式,进入配置文件开启即可

       

  接下来重载配置文件成功,然后访问下服务器,再查看log目录下是否有kelly.log日志文件,然后在more kelly.log看是否有日志记录

二、用定时任务完成日志切割备份

  思路:用shell写一个脚本,每到00:00:01时就把昨天的日志按日期时间格式重命名,放在相应的目录下,再用USR1信息号控制ngnix重新生成新的日志文件。

  接下来我们在/usr/local/ngnix/data目录下做实验,创建一个shell脚本,文件名为runlog.sh

  我以下图对此脚本做详细解释

  

  我附上该shell脚本源码,方便读者做测试:

#!/bin/bash
base_path=‘/usr/local/nginx/logs‘
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

  接下来做个定时任务,按指定时间自动执行此脚本(这里我是做测试,所以我每分钟执行一下这个脚本,方便看效果)

  

  

  然后查看最终效果

  

  此时,我们已经完成了用定时任务执行脚本,然后做日志切割备份。

  如果您觉得您能在此博文学到了新知识,请为我顶一个,如文章中有解释错的地方,欢迎指出。

  互相学习,共同进步!

时间: 2024-12-17 06:14:27

Ngnix的日志管理和用定时任务完成日志切割的相关文章

SQL Server中的事务日志管理(7/9):处理日志过度增长

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这篇文章会列出导致事务日志过度增长的常见的问题和错误管理形式,包括: 在完整恢复模式里,没有进行日志备份 进行索引维护 长时间运行或未提交的事务阻止事务日志里空间重用 当然,如果增长没检查,日志文件会扩展直到吞没所有可用磁盘空间或日志文件的最大大小,在这个时候你

SQL Server中的事务日志管理(1/9):事务日志概况

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 事务日志是存储对应数据库所有事务和数据修改记录的文件(每个数据库都有对应的日志文件).在造成SQL Server意外关闭的灾难事件里,例如实例或硬件故障,事务日志用来恢复数据库,用来保证数据的完好无损(完整性).在重启前,数据库进入恢复过程,事务日志被读取保证所

SQL Server中的事务日志管理(3/9):事务日志,备份与恢复

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 它不会经常提起,除非你的数据库运行在简单(SIMPLE)恢复模式,在事务日志上定期备份非常重要的.这会控制事务日志大小,并且保证,在灾难发生里,你可以恢复你的数据库到灾难发生前的某个时间点.这些日志备份要和定期的完整数据库(数据文件)备份一起. 如果你在测试数据

SQL Server中的事务日志管理(6/9):大容量日志恢复模式里的日志管理

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这个标题有点用词不当,因为运行在大容量日志恢复模式里的数据库,我们通常是长期不管理日志.但是,DBA会考虑在大容量加载时,短期切换到大容量恢复模式.当数据库在大容量模式里运行时,一些其他例如索引重建的操作会最小化日志(minimally logged),因此在日

向Windows 日志管理器写入系统程序日志信息

标准样例代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Diagnostics.Eventin

linux 学习 14 日志管理

第十四讲 日志管理 14.1 日志管理-简介 1.日志服务 ?在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致. ?rsyslogd的新特点: ?基于TCP网络协议传输日志信息; ?更安全的网络传输方式: ?有日志消息的及时分析框架: ?后台数据库: ?配置文件中可以写简单的逻辑判断: ?与sysl

Linux日志管理与分类

Linux默认系统日志   /var/log/messages 这是Linux最核心的日志文件,假若某个服务没有定义日志文件,那么该服务产生的日志文件就会记录到这个文件中,该日志每周归档一次,默认只保留5次.归档的方法都是由"/etc/logrotate.conf"这个文件来控制的.这个日志也有个守护进程"rsyslogd"如果把这个服务停止掉,就不会产生日志,在centos6之前的版本是由"syslogd"这个守护进程来管理的,不管是"

KBMMW 的日志管理器

kbmmw 4.82 最大的新特性就是增加了 日志管理器. 新的日志管理器实现了不同类型的日志.断言.异常处理.计时等功能. 首先.引用kbmMWLog.pas 单元后,系统就默认生成一个IkbmMWLog 实例: Log:IkbmMWLog; log 默认使用对应操作系统的日志功能. 为了能保存到硬盘上方便大家查看,可以使用本地文件方式,先设置一下日志及审计文件路径及属性 filelogmgr:=TkbmMWLocalFileLogManager.Create('.\log.txt','.\a

springboot日志管理+集成log4j

sprongboot使用的默认日志框架是Logback. 可以在application.properties配置简单日志属性,也可以单独配置logback.xml格式,还可以使用log4j来管理. 下面分别介绍自带的日志配置以及如何使用log4j来作为日志管理. 1 .自带日志管理配置: 1.1 修改application.properties #配置日志 logging.level.root=INFO logging.level.org.springframework.web=DEBUG lo