Linux按时间分割日志

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

一、由来:需要做一个定时任务定期从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行的调试效果:

Linux按时间分割日志第1张

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按时间分割日志第2张

免责声明:文章转载自《Linux按时间分割日志》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇零拷贝(Zero-copy)及其应用详解古墓惊魂 boss技能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux中进行单文件内容的复制

文件内容复制的常规方法: 开辟一段空间,不断读取文件的内容并写入另一文件当中,这种方法好在安全,一般在类型允许的最大范围内是安全的,缺点就是复制内容的时间长 一次性复制文件的内容,这种方法必须首先获取当前被复制的文件内容的大小,然后一次性开辟与文件内容大小相同的内存空间,通常为了安全,都必须让大小加1。 读取文件内容的步骤 打开被复制文件(open/fo...

如何指定GCC的默认头文件路径

如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631===============================================================================在交叉编译的时候我们需要...

linux命令---awk进阶

awk编程:    1.  变量:    在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义。变量的类型可以是数字、字符串。根据使用的不同,未初始化变量的值为0或空白字符串" ",这主要取决于变量应用的上下文。下面为变量的赋值负号列表: 符号 含义 等价形式 = a = 5 a = 5 += a = a + 5 a += 5...

Linux下安装numpy

转自:https://blog.csdn.net/abc_321a/article/details/82056019 1.下载源码包 ,命令如下wget http://jaist.dl.sourceforge.net/project/numpy/NumPy/1.9.0/numpy-1.9.0.zip若提示没有wget,则需要通过“yum install -...

Linux菜鸟入门级命令大全

1. man 对你熟悉或不熟悉的命令提供帮助解释eg:man ls 就可以查看ls相关的用法注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行。2. ls 查看目录或者文件的属*,列举出任一目录下面的文件eg: ls /usr/manls -la.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是...

Aviator

Aviator简介¶Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。现在已经有很多开源可用的java表达式求值引擎,为什么还需要Avaitor呢? Aviator的设计目标是轻量级和高性能,相比于Groovy、JRuby的笨重,Aviator非常小,加上依赖包也才450K,不算依赖包的话只有70K;当然,...