Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割
要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如:
[root@localhost ~]# date
2015年 07月 28日 星期二 02:33:02 CST [root@localhost ~]# date -d yesterday
2015年 07月 27日 星期一 02:33:18 CST [root@localhost ~]# date -d yesterday +%Y
2015 [root@localhost ~]# date -d yesterday +%y
15 [root@localhost ~]# 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`

或者
[root@localhost data]# vim runlog.sh
echo $(date -d yesterday +%Y%m%d)
保存退出
然后运行该脚本:
[root@localhost data]# sh runlog.sh
20150727
测试结束。
【测试2】
输出备份后的文件路径
vim runlog.sh
runlog.sh:
[root@localhost 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 :
[root@localhost 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 文件,格式为:*日*时*分
Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割的更多相关文章
- 『学了就忘』Linux日志管理 — 92、日志轮替
目录 1.日志文件的命名规则 2.logrotate配置文件说明 3.logrotate配置文件的主要参数 1.日志文件的命名规则 日志轮替最主要的作用就是把旧的日志文件移动并改名,同时建立新的空日志 ...
- 【Java EE 学习 76 下】【数据采集系统第八天】【通过AOP实现日志管理】【日志管理功能分析和初步实现】
一.日志管理相关分析 1.日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现. 2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限.角色.用户的写操作.修改操作.删除操 ...
- mysql基础之日志管理(查询日志、慢查询日志、错误日志、二进制日志、中继日志、事务日志)
日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 ,事务日志. 修改配置或者想要使配置永久生效需将内容写入配置文 ...
- 『学了就忘』Linux日志管理 — 91、日志服务rsyslogd说明
目录 1.日志文件格式 2.rsyslogd服务的配置文件 (1)rsyslog.conf文件内容 (2)rsyslog.conf配文件内容说明 (3)定义自己的日志 1.日志文件格式 只要是由日志服 ...
- 『学了就忘』Linux日志管理 — 93、日志轮替补充
目录 1.把自己的日志加入日志轮替 (1)操作方式 (2)示例 2.logrotate命令 1.把自己的日志加入日志轮替 使用RPM包方式安装服务的日志会自动的加入logrotate轮替,一般不需要你 ...
- MySQL 之 innodb 日志管理 -- 1. 基本日志文件
1.基本日志文件分类 错误日志(error log) 慢查询日志日志(slow query log) 二进制日志(binlog) 查询日志(general log) 2.错误日志 主要包括mysql的 ...
- 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语
目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...
- 基于吉日嘎底层架构的Web端权限管理操作演示-日志管理
权限管理要实现的效果是对“ 谁”可以访问“什么内容”,可以进行“哪些操作” 一系列权限的精细化控制.衡量一个软件好坏的重要标准是:它的权限体系是否足够细致.是否可以立体勾勒出信息对象的访问控制.前面4 ...
- monkey及其的日志管理和分析
1. monkey 1.1. 介绍 通过monkey程序模拟用户触摸屏幕,滑动Trackball.按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,检查和评估被测程序的稳定性 ...
- linux 学习 14 日志管理
第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...
随机推荐
- JUC回顾之-CyclicBarrier底层实现和原理
1.CyclicBarrier 字面意思是可循环(Cyclic)使用的屏障(Barrier).它要做的事情是让一组线程到达一个屏障(同步点)时被阻塞,直到最后一个线程到达屏障时候,屏障才会开门.所有被 ...
- 移除IIS默认的响应头
在IIS+ASP.NET的运行环境,默认情况下会输出以下的响应头(Response Headers): 那如何移除这些响应头呢?下面我们来一个一个移除. 1. 移除Server 借助IIS URL R ...
- ORACLE用SYS登录报ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER解决方法
情况一:使用sqlplus登录 正常输入用户名的口令,就会报错,因为SYS是在数据库之外的超级管理员,所以我们在登录的时候 要在输入口令:口令+as sysdba(比如:123456 as sysdb ...
- Java Hour 60 逃不开的GC
第一个大家都应该知道的概念就是应用程序中不断的new 分配了内存,却没有显式的代码去清理内存,而执行这个清理过程的自动垃圾回收的过程就叫做GC. 但是,JVM 说明并没有要求一定要有GC,JVM 说明 ...
- python list append方法
keyValueResult = {'a': 1, 'b': 2} sendData = [] def set_push_format(ip): data_format = { "endpo ...
- Zookeeper的功能以及工作原理
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的 ...
- 自定义ContentProvider的一些细节探究
1. 适用范围 对于什么情况下才会用到自定义的ContentProvider,官方文档的Dev Guide是这样描述的: 如果你想要提供以下的一种或几种特性的时候你才需要构造一个ContentPr ...
- Hark的数据结构与算法练习之地精(侏儒)排序
算法说明 地精排序是交换排序的一种,它是冒泡排序的一种改良,我感觉和鸡尾酒排序挺像的. 不同之处是鸡尾酒排序是从小到大,然后再从大到小切换着排序的.而地精排序是上来先从小到大排序,碰到交换到再从大到小 ...
- ASP.NET MVC 模型和数据对象映射实践
在使用 MVC 开发项目的过程中遇到了个问题,就是模型和数据实体之间的如何快捷的转换?是不是可以像 Entity Framework 的那样 EntityTypeConfiguration,或者只需要 ...
- 简单几何(求划分区域) LA 3263 That Nice Euler Circuit
题目传送门 题意:一笔画,问该图形将平面分成多少个区域 分析:训练指南P260,欧拉定理:平面图定点数V,边数E,面数F,则V + F - E = 2.那么找出新增的点和边就可以了.用到了判断线段相 ...