一些任务调度情况

在linux经常要做一些crontab任务,不注意的话容易出错,记录下,一些简单的情况:

*/15 *  * * * export PATH=$PATH:/usr/local/bin;/home/xmo/bj_today_data.sh
1  1 * * * export PATH=$PATH:/usr/local/bin;/home/xmo/bj_yesterday_data.sh
source /root/.bashrc; /usr/bin/python /home/xmo/bj_total.py>>/home/xmo/wilson_bj.log 2>&1



python中调度出错发邮件情况:

#!/usr/bin/python
#encoding:utf-8
'''
Created on 2015年12月14日

@author: wilson.zhou
'''
import pymysql
import pandas  as pd
import datetime
import os
print("Start processing file,Now time is :"+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# conn=pymysql.connect(host="10.10.10.77",user="usr_dba",passwd="4rfv%TGB^YHN",db="xmo_summaries",use_unicode=True, charset="utf8")
# cur=conn.cursor()
SysError=1
def  gaincurrenttime1(day):
    time=(datetime.datetime.now()+datetime.timedelta(days=day)).strftime("%Y%m%d")
    return time
global  handtime1
handtime1=gaincurrenttime1(0)
logtable="""insert into  logname_bj(k_date,logname,lognum,logerror) SELECT k_date,logname,lognum,logerror from  logname_load_bj  b where b.k_date ={0};""".format(handtime1)


banner_imp="""insert into search_market_conversions_summary_bj(searchengine_id,k_date,impressions) 
select searchengine_id,k_date,impressions from (select  searchengine_id, k_date,sum(impressions) as impressions from rtb_log_load_data_bj where k_date={0} group by searchengine_id,k_date)  b 
on duplicate key update search_market_conversions_summary_bj.impressions=ifnull(search_market_conversions_summary_bj.impressions,0)+ifnull(b.impressions,0);""".format(handtime1) 


banner_click="""insert into search_market_conversions_summary_bj(searchengine_id,k_date,clicks ,click_true ) 
select searchengine_id,k_date,clicks ,click_true from (select  searchengine_id, k_date,sum(clicks) as clicks ,sum(click_true) as click_true  from adgroup_log_load_data_bj   
 where k_date={0} group by searchengine_id,k_date) b on duplicate key update search_market_conversions_summary_bj.clicks=ifnull(search_market_conversions_summary_bj.clicks,0)+ifnull(b.clicks,0), 
search_market_conversions_summary_bj.click_true=ifnull(search_market_conversions_summary_bj.click_true,0)+ifnull(b.click_true,0);""".format(handtime1)


otv_imp=""" insert imageviews_report_summary_core_bj(creative_id,date,impressions,displayimage_id,placement_id) select creative_id,date,impressions ,displayimage_id,placement_id from (select  creative_id, date,displayimage_id,placement_id ,sum( impressions) as impressions from image_imp_log_load_data_bj 
 where date={0} group by creative_id,date,displayimage_id,placement_id) b on duplicate key update imageviews_report_summary_core_bj.impressions=ifnull(imageviews_report_summary_core_bj.impressions,0)+ifnull(b.impressions,0);""".format(handtime1)


otv_click="""insert imageviews_report_summary_core_bj(creative_id,date,clicks,displayimage_id,placement_id ) select creative_id,date,clicks ,displayimage_id,placement_id from (select  creative_id, date,displayimage_id,placement_id ,sum(clicks) as clicks   from image_cli_log_load_data_bj
 where date={0} group by creative_id,date,displayimage_id,placement_id ) b  on duplicate key update imageviews_report_summary_core_bj.clicks=ifnull(imageviews_report_summary_core_bj.clicks,0)+ifnull(b.clicks,0);""".format(handtime1)


if  os.path.exists('/home/xmo/bj_datahand.py.lck'):
    print('the  program  is running')
    os.system("""python  /home/xmo/sendmail.py  " BJ python program is running,Now the time is {0}"  "Please try again later" """.format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
    pass

else:
    os.system("ln -s /home/xmo/bj_datahand.py  /home/xmo/bj_datahand.py.lck")
    try:
#         conn=pymysql.connect(host="10.10.10.77",user="usr_dba",passwd="4rfv%TGB^YHN",db="xmo_summaries",use_unicode=True, charset="utf8")
        conn=pymysql.connect(host="10.10.10.152",user="usr_sync",passwd="^YGH*aJdH2TS134tgb",db="xmo_summaries_sync",use_unicode=True, charset="utf8")
        cur=conn.cursor()
        cur.execute("delete from logname_load_bj where k_date={0};".format(handtime1))
        conn.commit()
        cur.execute("delete from adgroup_log_load_data_bj where k_date={0};".format(handtime1))
        conn.commit()
        cur.execute("delete from image_cli_log_load_data_bj  where date={0};".format(handtime1))
        conn.commit()
        cur.execute("delete from image_imp_log_load_data_bj where date={0};".format(handtime1))
        conn.commit()
        cur.execute("delete from rtb_log_load_data_bj  where k_date={0};".format(handtime1))
        conn.commit()
        execfile('/home/xmo/bj_datahand.py')

    except  Exception, e:
        print e
        SysError=SysError+1
        os.system("unlink  /home/xmo/bj_datahand.py.lck")
    finally:
        if SysError==1:
            
    
#     banner数据插入更新
            try:
                cur.execute(banner_click)
                conn.commit()
            except Exception,e:
                print e
            try:  
                cur.execute(banner_imp)
                conn.commit()
            except Exception,e:
                print e
#     otv数据插入更新
            try:
                cur.execute(otv_imp)
                conn.commit()
            except Exception,e:
                print e
            try:
                cur.execute(otv_click)
                conn.commit()
            except:
                print e
            try:
                cur.execute(logtable)
                conn.commit()
            except Exception,e:
                print e
#       banner数据备份
            try:
                cur.execute("""insert into rtb_log_load_data_history_bj(searchengine_id,k_date,impressions,updatetime) select searchengine_id,k_date,impressions,DATE_FORMAT(now(),"%Y%m%d %H:%i:%s") as updatetime from(select  searchengine_id, k_date,sum(impressions) as impressions from rtb_log_load_data_bj   
 where k_date={0} group by searchengine_id,k_date)  b """.format(handtime1))
                conn.commit()
            except Exception,e:
                print e
            try:
                cur.execute("""INSERT into adgroup_log_load_data_history_bj(searchengine_id,k_date,clicks ,click_true,updatetime) select searchengine_id,k_date,clicks ,click_true,DATE_FORMAT(now(),"%Y%m%d %H:%i:%s") as updatetime  from  
 (select  searchengine_id, k_date,sum(clicks) as clicks ,sum(click_true) as click_true from adgroup_log_load_data_bj 
 where k_date={0} group by searchengine_id,k_date) b;""".format(handtime1))
                conn.commit()
            except:
                print e

#       otv数据备份
            try:
                cur.execute("""insert into image_cli_log_load_data_history_bj(creative_id,date,clicks ,displayimage_id,placement_id ,updatetime)  select  creative_id,date,clicks ,displayimage_id,placement_id ,DATE_FORMAT(now(),"%Y%m%d %H:%i:%s") as updatetime from (select  creative_id, date,displayimage_id,placement_id ,sum(clicks) as clicks   from image_cli_log_load_data_bj
 where date={0} group by creative_id,date,displayimage_id,placement_id ) b """.format(handtime1))
                conn.commit()
            except Exception,e:
                print e
            try:
                cur.execute("""insert into image_imp_log_load_data_history_bj(creative_id,date,impressions,displayimage_id,placement_id ,updatetime) select creative_id,date,impressions,displayimage_id,placement_id ,DATE_FORMAT(now(),"%Y%m%d %H:%i:%s") as updatetime  from (select  creative_id, date,sum( impressions) as impressions ,displayimage_id,placement_id  from image_imp_log_load_data_bj
 where date={0} group by creative_id,date,displayimage_id,placement_id ) b""".format(handtime1))
                conn.commit()
            except:
                print e
    try:
        os.system("unlink  /home/xmo/bj_datahand.py.lck")
    except:
        pass
    if SysError==1:
       
        print("There is no error,Now time is :"+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    else:
        try:
            os.system("""python  /home/xmo/sendmail.py "BJ PYTHON  ERROR ,Now the time is {0}"  "BJ scheduler has an error in  python program, please check it."  """.format(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
        except:
            print("mail has some errors")
        print("Please check for errors,Now time is :"+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    conn.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值