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