shell的脚本模板

 shell中的比较符号如下:

-eq 等于 equal
-ne 不等于 no equal
-gt 大于
-lt 小于
ge 大于等于
le 小于等于

#!/bin/bash
#################################
##创建人:
##创建时间:
##修改人:
##修改时间:
##功能描述:
##hive -e 意思是到hive中去执行一个命令,命令写在""里面
#date 当前时间,输出的时候加上当前时间
#########################################
echo "程序开始,时间:"$(date)
hive -e "load data local inpath '/mydir/emp.txt' overwrite into table mydb.emp"


echo "load emp数据完成,时间:"$(date)
hive -e "SQL语句"

if [ $? -ne 0 ]; then
    echo "failed"
else
    echo "succeed"
fi          #SQL语句运行结果成功还是失败      

echo "程序结束,时间:"$(date)  #异常命令

 添加变量的模板

#!/bin/bash
#################################
##创建人:
##创建时间:
##修改人:
##修改时间:
##功能描述:
##hive -e 意思是到hive中去执行一个命令,命令写在""里面
#date 当前时间,输出的时候加上当前时间
#########################################

dodate=$(date +%Y-%m-%d) ####变量,自动获取当前年月日,例如2021-07-03

#使用的时候 用$变量名 

echo "程序开始,时间:"$(date)

hive -e "insert overwrite table mydb.emp_p partition(hiredate='$dodate')
select 
e.empno, 
e.ename
from mydb.emp e
where e.hiredate='$dodate'"

echo "程序结束,时间:"$(date)

---手工指定日期执行
#todate=$1 表示运行的日期,自己来指定
emp_p.sh 2022-04-22 >>/mydir/emp_p.log

---自动获得当天的日期执行

emp_p.sh>>/mydir/emp_p.log

---调度

---linux系统任务计划

vi /etc/crontab

添加内容如下:

01 01 * * * root /mydir/emp_p.sh>>/mydir/emp_p.log --每天的01点01分执行,后面加上写日志到日志文件

---数据验证

select * from mydb.emp_p where hiredate='2021-07-03';

posted @ 2022-05-08 15:28  潜摩羯  阅读(182)  评论(0编辑  收藏  举报