Linux按时间分割日志

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

 

  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.新建分割日志任务;

 
  
   #vim kettle_log.sh
 1 #!/bin/bash
 2 #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
 9 date_file=$file-`date -d "1 minutes ago" +%Y%m%d-%H:%M:%S`; #实际上是1分钟前的所以增加1m ago;可以在命令行调试date -d;
10 #echo $date_file
11 #归档日志-将$file修改为$date_file,而后创建$file
12 cd $dir && mv -f $file $date_file && touch $file;
13  
14 #删除2天前的归档日志
15 #find $dir -mtime +3 -name "$file-*.log" -exec rm -rf {} \;
16 #find $dir -mtime +3 -name "kettle.log*" -exec rm -rf {} \;
17 find $dir -cmin +3 -name "kettle.log*" -exec rm -rf {} \;

*上述第9行的调试效果:

 

 

  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.效果;

 

转载于:https://www.cnblogs.com/stuka/p/11233736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值