shell 时间


#-- *********************************************
#-- 内容:
#-- 开发人员:
#-- 开发日期:
#-- 版本:V
#-- 修改时间:
#-- 修改人:
#-- **********************************************
#!/bin/bash
source /etc/profile
log=/LOG/SHELL/LOG
currPath=/OPT/SHELL/CODE

day_week=`date +%w`         #用于判断星期几 
day_of_the_month=`date +%d`

#起始时间变量
log_day=`date  +%Y-%m-%d` 
inc_y_m_d=`date -d "1 day ago ${log_day}" +%Y-%m-%d`       #1天前
inc_y_m_2d=`date -d "2 day ago ${log_day}" +%Y-%m-%d`      #2天前
inc_y_m_7d=`date -d "${inc_y_m_d} 6 day ago" +%Y-%m-%d`    #近7天
inc_y_m_8d=`date -d "${inc_y_m_d} 5 day ago" +%Y-%m-%d`    #8天
inc_y_m_14d=`date -d "${inc_y_m_d} 13 day ago" +%Y-%m-%d`  #近14天
inc_y_m_30d=`date -d "${inc_y_m_d} 29 day ago" +%Y-%m-%d`  #近30天
inc_y_m_31d=`date -d "${inc_y_m_d} 28 day ago" +%Y-%m-%d`  #31天
inc_y_m_60d=`date -d "${inc_y_m_d} 59 day ago" +%Y-%m-%d`  #近60天

#7天前是星期几,%w 星期一 为1 星期二 为2
after_xq=`date -d "${inc_y_m_7d}" +%w`

#自然周:周日、周一
after_week7=`date -d "${log_day} ${after_xq} day ago" +%Y-%m-%d` 
after_week1=`date -d "${after_week7} 6 day ago" +%Y-%m-%d`

#上周 周日、周一
before_after_week1=`date -d "${after_week1} 7 day ago" +%Y-%m-%d` 
before_after_week7=`date -d "${after_week7} 7 day ago" +%Y-%m-%d`

#判断上周是第几周
last_week_num=`date -d "${after_week1} " +%Y%V` #第几周%V

#自然月 1号 月末
last_month_y_m_01=`date -d "${log_day} 1 month ago" +%Y-%m-01` 
last_month_y_m_31=`date -d "${last_month_y_m_01} 1 month 1 day ago" +%Y-%m-%d`

#截取上月是几月
last_month_y_m=`date -d "${last_month_y_m_01}" +%Y%m` 

#上月 1号、月末
before_last_month_y_m_01=`date -d "${last_month_y_m_01} 1 month ago" +%Y-%m-01` 
before_last_month_y_m_31=`date -d "${before_last_month_y_m_01} 1 month 1 day ago" +%Y-%m-%d` #1 month 后面没加ago 所以是加一个月  
#如`date -d "2018-10-01 1 month 1 day ago" +%Y-%m-%d` --1 month 后是11月1日 在1 day ago 后就是10月31日

data_date=`date -d "1 day ago" +%Y-%m-%d`   
pt_date=`date -d "1 day ago" +%Y%m%d`

#近期天from to
inc_d=`date -d "1 day ago ${log_day}" +%Y%m%d`       #1天前 #1 day ago 在前在后结果一样
inc_7d=`date -d "${inc_y_m_d} 6 day ago" +%Y%m%d`    #近7天
inc_30d=`date -d "${inc_y_m_d} 29 day ago" +%Y%m%d`  #近30天
last_7day=${inc_7d}-${inc_d}
last_30day=${inc_30d}-${inc_d}

log_table=rpt_cc_dw_detail

depend_name=${log}/${log_table}_${log_day}.txt   
scr_name=rpt_cc_dw_detail

while [ 1 ]
do 
  if [ -f ${depend_name} ]; then

   #每天跑一次
sh ${currPath}/${scr_name}_day.sh ${inc_y_m_d} ${inc_y_m_d} 1  ${scr_name}_day ${inc_y_m_d} 0 0 0 0 &

sh ${currPath}/${scr_name}_info.sh ${inc_y_m_14d} ${inc_y_m_d} 8  ${scr_name}_info 0 ${inc_y_m_7d} ${inc_y_m_d} ${inc_y_m_14d} ${inc_y_m_8d} &
  
sh ${currPath}/${scr_name}_model.sh ${inc_y_m_14d} ${inc_y_m_d} 7  ${scr_name}_7day ${last_7day} ${inc_y_m_7d} ${inc_y_m_d} ${inc_y_m_14d} ${inc_y_m_8d} &

if [ ${day_week} -eq 1 ]; then 
  sh ${currPath}/${scr_name}_model.sh ${before_after_week1} ${after_week7} 14  ${scr_name}_14day ${last_week_num} ${after_week1} ${after_week7} ${before_after_week1} ${before_after_week7} & 
fi 
   
sh ${currPath}/${scr_name}_model.sh ${inc_y_m_60d} ${inc_y_m_d} 30  ${scr_name}_30day ${last_30day} ${inc_y_m_30d} ${inc_y_m_d} ${inc_y_m_60d} ${inc_y_m_31d} &

if [ ${day_of_the_month} -eq 01 ]; then   
  sh ${currPath}/${scr_name}_model.sh ${before_last_month_y_m_01} ${last_month_y_m_31} 60  ${scr_name}_60day ${last_month_y_m} ${last_month_y_m_01} ${last_month_y_m_31} ${before_last_month_y_m_01} ${before_last_month_y_m_31} &
fi  
   break
  else 
    echo 'no depend'
    sleep 60
 continue
fi
done  

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值