shell脚本按天按周按月上传ODPS

----getrate.sh
#!/bin/sh
#添加环境变量
source /etc/profile
#声明地址
datapath='/home/datadev/spider/rate'
odpspath='/home/datadev/odps/bin'
TIME=`date +%Y%m%d`
#调用py生成txt文件
python getRate.py
partition=$TIME
filename="rate.txt"
sh upload.sh $partition $filename
echo "finish !"
----upload.sh
partition=$1
file=$2
odpscmd -e "tunnel upload -acp true /home/datadev/spider/rate/${file} xxx_ods.pds_exchange_rate_info/pt=${partition}"
----配置crontab

-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。


0 3 * * * /usr/xxx/shell/getrate.sh


--环境变量 /etc/profile 或者个人用户环境 export ODPS_HOME= odps的bin地址
--Shell的变量传递 sh xxx.sh $xx $xx
--参考文档 https://yq.aliyun.com/articles/1487 ODPS_CLT 交互式and非交互式
--按周按月

TIME=`date -d'1 day ago' +%Y%m%d`
IFSUNDAY=`date -d"$TIME" +%w`
FIRSTDAY=`date +%Y%m01` # 本月第一天
LASTDAY=`date -d"$FIRSTDAY last day" +%Y%m%d` # 上个月最后一天

if [ "$IFSUNDAY" -eq 0 ];then
   echo "执行按周调度任务:"
--code
else
   echo "非周日,不执行按周调度任务"
fi

if [ "$LASTDAY" -eq "$TIME" ];then
   echo "执行按月调度任务:"
--code
else
   echo "非月末,不执行按月调度任务"
fi


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值