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