Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割

要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如:

[[email protected] ~]#  date
2015年 07月 28日 星期二 02:33:02 CST

[[email protected] ~]# date -d yesterday
2015年 07月 27日 星期一 02:33:18 CST

[[email protected] ~]# date -d yesterday +%Y
2015

[[email protected] ~]# date -d yesterday +%y
15

[[email protected] ~]# date -d yesterday +%Y%m%d
20150727

编写 shell 脚本

在根目录下创建 data 目录,用于存放 shell 脚本

mkdir /data

进入 /data 目录,创建 runlog.sh:

cd /data
vim runlog.sh

【测试】 .sh 文件:

echo `date -d yesterday +%Y%m%d`

或者

[[email protected] data]# vim runlog.sh
echo $(date -d yesterday +%Y%m%d)

  

保存退出

  

然后运行该脚本:

[[email protected] data]# sh runlog.sh
20150727

测试结束。

【测试2】

输出备份后的文件路径

vim runlog.sh

runlog.sh:

[[email protected] data]# vim runlog.sh

bak=$BASELOG/$(date -d yesterday +%Y%m%d)
LOGPATH=/usr/local/nginx/logs/dee.com.access.log
BASELOG=/data

bak=$BASELOG/$(date -d yesterday +%Y%m%d%H%M).dee.com.access.log
echo $bak

保存退出。

运行 runlog.sh :

[[email protected] data]# sh runlog.sh
/data/201507270317.dee.com.access.log

测试结束。

定义了备份后的文件路径之后,需要把原来的日志文件剪切到新的路径,同时新建一个访问日志文件,最后使用 nginx 信号控制中的 USR1 来完成日志切割:

vim runlog.sh

runlog.sh:

LOGPATH=/usr/local/nginx/logs/dee.com.access.log
BASELOG=/data

bak=$BASELOG/$(date -d yesterday +%Y%m%d%H%M).dee.com.access.log

mv $LOGPATH $bak
touch $LOGPATH

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

  

保存退出。

创建计划任务(每分钟执行 1 次):

crontab -e

*/1 * * * * sh /data/runlog.sh

保存退出。

此时 /data 目录下的文件:

  

  

1 min 之后:

  

2 min 之后:

  

浏览文件:

  

如果要把日志按照年月放进不同的路径下,可以:

vim runlog.sh

runlog.sh:

LOGPATH=/usr/local/nginx/logs/dee.com.access.log
BASEPATH=/data/$(date -d yesterday +%Y%m)

mkdir -p $BASEPATH

bak=$BASEPATH/$(date -d yesterday +%d%H%M).dee.com.access.log

mv $LOGPATH $bak
touch $LOGPATH

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

  

保存退出。

此时,有了 201507 的目录:

  

目录下保存了最新的 log 文件,格式为:*日*时*分

  

  

时间: 2024-10-05 22:49:39

Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割的相关文章

日志管理(查看日志的基本指令,日志同步)

日志管理

20181219日志管理基础

日志管理基础 rsyslog 日志管理logrotate 日志轮转采集 -----> 分析一.处理日志的进程rsyslogd: 绝大部分日志记录,和系统操作有关,安全,认证 sshd,su,计划任务 at,cron...httpd/nginx/mysql: 可以以自己的方式记录日志[[email protected] ~]# ps aux |grep rsyslogdroot 717 0.0 0.0 219752 3880 ? Ssl 09:05 0:00 /usr/sbin/rsyslogd

基于吉日嘎底层架构的Web端权限管理操作演示-日志管理

权限管理要实现的效果是对“ 谁”可以访问“什么内容”,可以进行“哪些操作” 一系列权限的精细化控制.衡量一个软件好坏的重要标准是:它的权限体系是否足够细致.是否可以立体勾勒出信息对象的访问控制.前面4篇我们依次介绍了<用户管理>.<角色管理>.<菜单模块管理>和<组织机构管理>,这篇我们演示一下日志管理: 异常日志 访问日志 上传日志 修改日志 在线视频 优酷视频地址,手机无法播放的点击这里:http://v.youku.com/v_show/id_XMTc

MySql Study之--MySql日志管理

MySql Study之--MySql日志管理 一.日志文件类型 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 日志文件信息内容 错误日志 记录启动.运行或停止mysqld时出现的问题.(log_err) 查询日志 记录建立的客户端连接和执行的语句. 更新日志 记录更改数据的语句,不赞成使用该日志. 二进制日志 记录所有更改数据的语句.还用于复制.(bin_log) 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询.

monkey及其的日志管理和分析

1.   monkey 1.1.  介绍 通过monkey程序模拟用户触摸屏幕,滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,检查和评估被测程序的稳定性 官方:Monkey是一个程序,运行在您的模拟器或设备上,并生成伪随机的用户事件流,如点击,触摸或手势,以及一些系统级事件. 您可以使用Monkey以随机但可重复的方式对您正在开发的应用程序进行压力测试. 主要用于Android的压力测试,自动的一个压力测试小工具.目的是为了测试APP是否会cras

linux 学习 14 日志管理

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

MySQl Study学习之--MySQl二进制日志管理

MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log):   a.它包含的内容及作用如下:    包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)    包含关于每个更新数据库(DML)的语句的执行时间信息    不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能    主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新    用于在主复制服务器上记录所有将发送

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

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

Linux服务器管理: 日志管理(一)

1.日志管理介绍: a.日志服务:在CentOS6.x中日志服务以及由rsyslogd取代了原有的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日子文件的格式其实都是和syslogd服务相兼容的,所以会了syslogd也就会了rsyslod服务. b.rsyslogd的新特点: 基于TCP网络协议传输日志信息 更安全的网络传输方式 有日志消息的及时分析框架 后台数据库 配置文件中可以写简单的逻辑判断 与syslog配置文件相兼容 3.系统默认是启动的:

Linux计划任务和日志管理

计划任务 日志. 搭建远程日志管理 计划任务 at  只能执行一次 语法: at time(时间) 服务: atd 必须开启      [[email protected] ~]# /etc/init.d/atd status  #查看atd服务状态      atd (pid  2108) is running... 创建计划任务      [[email protected] ~]# at 16:07      at> echo `date` > /tmp/date.txt      at