首页 > 系统服务 > 详细

Linux按时间分割日志

时间:2019-07-23 19:17:59      阅读:161      评论:0      收藏:0      [点我收藏+]

一、由来:需要做一个定时任务定期从MySQL数据库同步数据到Oracle,5m/次,同步日志写在一个文件恐有不妥,故而需要分割,一般按天,这里为了调试,按分操作。

 

  1.任务如下:分别指定任务的脚本,任务读取文件路径,任务日志输出;

1 vim kettle.sh
2 /usr/etc/tools/pendaho/data-integration/kitchen.sh -file=/usr/etc/tools/pendaho/kettle/works.kjb -level=Detailed -logfile=/usr/etc/tools/pendaho/kettle/logs/kettle.log

 

  2.新建分割日志任务;

 1 vim kettle_log.sh
 2 #!/bin/bash
 3 #function:kitchen.sh日志分割,最多保留?
 4  
 5 dir=/usr/etc/tools/pendaho/kettle/logs/;#日志路径
 6 file=kettle.log;#当前日志文件名
 7 #DATE=`date +"%Y%m%d %H%M%S"`;
 8 date_file=$file-`date +"%Y%m%d-%H:%M:%S"`; #kettle.log-20190723-18:06:37 即文件名+日期
 9  
10 #归档日志-将$file修改为$date_file,而后创建$file
11 cd $dir && mv -f $file $date_file && touch $file; #这里刚开始用的是/bin/cp导致日志内容叠加,实际效果应该是记录每分钟一次的执行日志,所以换成mv
12  
13 #删除3天前的归档日志
14 #find $dir -mtime +3 -name "$file-*.log" -exec rm -rf {} \;
15 find $dir -cmin +3 -name "kettle.log*" -exec rm -rf {} \;

 

  3.通过crontab配置任务执行;

1 crontab -e
2 */1 9-23 * * 1-5 sh /usr/etc/tools/pendaho/kettle/kettle.sh
3 */1 9-23 * * * sh /usr/etc/tools/pendaho/kettle/kettle_log.sh

 

  4.效果;

技术分享图片

 

Linux按时间分割日志

原文:https://www.cnblogs.com/stuka/p/11233736.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!