【Datax】批量执行Datax任务脚本
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,datetime,logging
#定义日志模块-开始
datestr = (datetime.datetime.now()).strftime('%Y-%m')
logger_path = '/home/datax/dataxlog'
if not os.path.exists(logger_path):
os.makedirs(logger_path)
logger = logging.getLogger('DataxLog')
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler(logger_path+'/'+datestr+'-datax.log')
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
#定义日志模块-结束
# Datax命令路径
datax_cmd = 'python /usr/local/datax/bin/datax.py -p '
# Datax参数
datax_arg = ' "-Dyear=%s" '
# Datax配置文件路径
datax_cfg_path = '/usr/local/datax-config/'
# Datax运行文件名称
datax_cfg_list = ['mysql2es1.json', 'mysql2mysql2.json']
# Datax拼接后的命令集
datax_exec_list = []
if __name__ == '__main__':
year = (datetime.datetime.now()).strftime('%Y')
arg = datax_arg % (year)
for cfg_name in datax_cfg_list :
cmd = datax_cmd + arg + datax_cfg_path + cfg_name
datax_exec_list.append(cmd)
for cmd in datax_exec_list:
logger.info('start:'+cmd)
try:
os.system(cmd)
logger.info('end:'+cmd)
except Exception as e:
logger.error('fail execute ='+cmd)
logger.error('Error:',e)