【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)

 posted on 2022-01-12 23:53  二月无雨  阅读(1304)  评论(0)    收藏  举报