zoukankan      html  css  js  c++  java
  • 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.效果;

    作者:stuka

    个性签名:教育的目的是为了获得与个人兴趣爱好相适应并得到国家和社会认可的能力

    如有帮助请点击右下“推荐”

    wechat alipay

  • 相关阅读:
    数据结构基础
    基于TCP的通信 客户端
    hduacm 5255
    uva 10668
    hduacm 5104
    uva 10491
    Hibernate之性能优化
    Hibernate基础知识
    Hibernate入门
    Struts2之Crud综合实例
  • 原文地址:https://www.cnblogs.com/stuka/p/11233736.html
Copyright © 2011-2022 走看看