kettle 调度脚本

软件设计 2017-04-18

一、kettle6.1.0 循环执行采集转换,增量采集数据

1.循环执行转换,并将日志输出到知道目录下

2.以当天日期创建日志目录,例如2017-04-17

3.删除前天的日志(2天前的日志),只保留昨天和今天的日志,防止磁盘空间被过分占用

--------------------------------------------------------------------------------

#!/bin/sh

#Count task numbersret=$(cat /data/kettle/ZD119/tablename_zd119 | wc -l)

#counteri=1

#get today date, example:2017-04-17date_day=$(date -d "now" +%Y-%m-%d )

#get current timestamp, example:15:48:14date_time=$(date -d "now" +%T)

#get 2 days ago date, date format:2017-04-15date_2day_ago=$(date -d "2 days ago" +%Y-%m-%d)

#log directorylog_zd119_path=/data/kettle/ZD119/log/

#judge wether 2 days ago log exists, if 2 days ago log exists, then remove logif [ -d "${log_zd119_path}${date_2day_ago}" ] ; then

    rm -rf "${log_zd119_path}${date_2day_ago}"

fi

#judge whether the directory existsif [ ! -d "${log_zd119_path}${date_day}" ]; then    mkdir -p ${log_zd119_path}${date_day}fi

#Cycle execute collection taskwhile [ $i -le $ret ]dotablename=$(sed -n "$i,0p" /data/kettle/ZD119/tablename_zd119)echo ${tablename}.ktr.${i}>>${log_zd119_path}${date_day}/zd119_tablename_${date_time}.logpan.sh -file=/data/kettle/ZD119/com/${tablename}.ktr -level=basic>>${log_zd119_path}${date_day}/zd119_${date_time}.log i=`expr $i + 1`done

#remove zd119 2 days ago logs#find ${log_zd119_path} -mtime +2 -type d -name * -exec rm -rf {} \;

-------------------------------------------------------------------------------------------

二、kettle6.1.0 循环执行采集作业,增量采集数据

1.循环执行作业,并将日志输出到知道目录下

2.以当天日期创建日志目录,例如2017-04-17

3.删除前天的日志(2天前的日志),只保留昨天和今天的日志,防止磁盘空间被过分占用

---------------------------------------------------------------------------------------

#!/bin/sh

#Count task numbersret=$(cat /data/kettle/ZDDW_HLW01/tablename_zddw_hlw01_com | wc -l)i=1

#get today date, example:2017-04-17date_day=$(date -d "now" +%Y-%m-%d )

#get current timestamp, example:15:48:14date_time=$(date -d "now" +%T)

#get 2 days ago date, date format:2017-04-15date_2day_ago=$(date -d "2 days ago" +%Y-%m-%d)

#zddw_hlw01 log directorylog_zddw_hlw01_path=/data/kettle/ZDDW_HLW01/log/

#judge wether 2 days ago log exists, if 2 days ago log exists, then remove logif [ -d "${log_zddw_hlw01_path}${date_2day_ago}" ] ; then

    rm -rf "${log_zddw_hlw01_path}${date_2day_ago}"

fi

#judge whether the directory existsif [ ! -d "${log_zddw_hlw01_path}${date_day}" ]; then      mkdir -p ${log_zddw_hlw01_path}${date_day}

fi

#Cycle execute collection task

while [ $i -le $ret ]dotablename=$(sed -n "$i,0p" /data/kettle/ZDDW_HLW01/tablename_zddw_hlw01_com)echo JOB_${tablename}.kjb.${i}>>${log_zddw_hlw01_path}${date_day}/zddw_hlw01_com_tablename_${date_time}.logkitchen.sh -file=/data/kettle/ZDDW_HLW01/com/JOB_${tablename}.kjb -level=basic>>${log_zddw_hlw01_path}${date_day}/zddw_hlw01_com_${date_time}.logi=`expr $i + 1`done

#remove zddw_hlw01 2 days ago logs#find ${log_zddw_hlw01_path} -mtime +2 -type d -name * -exec rm -rf {} \;

三、采用Linux crontab 定时器调度脚本,周期执行采集任务

3-1.调度要求

(1).循环周期10分钟

(2).开机运行crontab定时任务

3-2.crontab 使用

(1).编辑定时任务

#crontab -e

*/10 * * * * /bin/sh /data/kettle/ZD119/test_zd119.sh &*/10 * * * * /bin/sh /data/kettle/ZDDW_HLW01/test_zddw_hlw01_com.sh &*/10 * * * * /bin/sh /data/kettle/ZDDW_HLW01/test_zddw_hlw01_big.sh &

crontab 格式:* * * * * command

分别表示:分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 周(0-6) command(表示要执行的命令)

(2).常用命令

crontab [-u user] file crontab [-u user] [ -e | -l | -r ]其中:crontab [-u user] -e  编辑用户的当前crontab任务

        crontab [-u user] -l   列出用户的当前crontab任务

        crontab [-u user] -r   删除用户的当前crontab任务

        crontab [-u user] -i   删除用户的当前crontab任务之前提示

        crontab -c dir               指定crontab的目录(3).启动/停止crontab任务

/etc/init.d/cron start/restart/stop/status

service cron start/restart/stop/status

(4).开机自启动

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息

usage: chkconfig [--list] [--type <type>] [name] chkconfig --add <name>    ##添机管理服务 chkconfig --del <name>     ##删除管理服务 chkconfig --override <name> chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities>

--------------------------------------------------------------------------------------------------------

chkconfig --list crond    查看当前任务的开机自启动级别

chkconfig crond on | off       开启开机自动

chkconfig --level 2345 crond on | off

kettle 调度脚本

(5).修改系统文件, 实现开机运行采集任务

vim /etc/rc.local

:/etc/init.d/crond restart

kettle 调度脚本

相关推荐