Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割
2023-09-11 14:17:03 时间
要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如: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 文件,格式为:*日*时*分
相关文章
- 数据库日志、主从复制、备份和还原
- supersocket中的日志处理
- Yarn-本地获取任务日志
- Kubernetes笔记:深入kubernete---日志和监控
- 33 MAPREDUCE的 web日志预处理
- promtail-loki-grafana轻量日志监控系统(转载)
- 快速找到oracle的alert日志
- ELK菜鸟手记 (一) 环境配置+log4j日志记录
- PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项 && 将错误记录到指定的文件中
- Linux 计划任务 Crontab 笔记与总结(4)crontab 的日志
- ATS日志说明
- Logback中如何自定义灵活的日志过滤规则
- (转)python中用logging实现日志滚动和过期日志删除
- logstash redis kafka传输 haproxy日志
- 日志在项目中 的应用
- 《Storm实时数据处理》一2.6 统计与持久化日志统计信息
- Java异常处理基础知识笔记:异常处理机制、异常继承关系、捕获异常、抛出异常、异常的传播、异常调用栈、自定义异常、第三方日志库
- 日志文件的格式和内容,日志文件的作用,登记日志文件的规则
- nginx 日志切割
- JAVA优化篇 如何从茫茫日志中找到运行缓慢的线程
- 《Redis设计与实现》学习笔记-发布与订阅、事务、慢查询日志
- SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
- 常见的开源日志(包括分布式)
- nginx 学习笔记(5) nginx调试日志
- shell按日期自动切割nginx日志脚本