本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件

sql文件

-- 创建表

create table if not exists iot_test.iot_tac

(

MSISDN string,

TAC string

)

partitioned by(day string)

row format delimited

fields terminated by '\t'

lines terminated by '\n'

stored as parquet;

--录入数据

set hive.exec.dynamic.partition.mode=nonstrict;

insert overwrite table iot_test.iot_tac

partition(day='${hivevar:day}')

select t4.MSISDN,t4.TAC

from

(select t1.MSISDN,t1.TAC from

(select MSISDN,substr(IMEI,1,8) as TAC,row_number()over(partition by MSISDN) as rn

from prestat.iot_activeuser_hour

where day='${hivevar:day}' and minute='${hivevar:minute}' and IMEI is not null) as t1

left join

(select MSISDN,TAC from iot_test.iot_tac where day='${hivevar:lmonth}') as t2

on t1.MSISDN = t2.MSISDN

where t2.MSISDN is null and t1.rn = 1

union all

select MSISDN,TAC

from iot_test.iot_tac

where day='${hivevar:lmonth}'

) as t4;

${hivevar:day}

接受shell脚本传来的参数day

shell脚本

#!/bin/bash

source /etc/profile

set -e

echo "**************************************************"

echo "**************************************************"

echo "*********************START************************"

echo "**************************************************"

echo "**************************************************"

day=$(date -d "today -5hours" +%Y%m%d)

minute=$(date -d "today -5hours" +%H00)

lmonth=$(date -d "last month -5hours" +%Y%m%d)

echo $day

echo $minute

echo $lmonth

kinit -kt /home/secu01/cluster_keytab/secu01.keytab secu01

#调用sql

/usr/bin/hive -hivevar cmouth=${day} -hivevar cmouth=${minute} -hivevar lmouth=${lmonth} -f /iot_tac.sql

echo "*************iot_tac.sql调用成功*************"

echo "***************all success****************"

#!/bin/bash

指此脚本使用/bin/bash来解释执行

day、minute、lmonth

定义的参数,传递给sql文件

部署定时

第一步:将shell脚本和sql文件上传到Linux系统中,shell文件名:iot_tac.sh;sql文件名:iot_tac.sql

第二步:更改shell脚本的权限

chmod u+x iot_tac.sh

第三步:如果sql文件报错:/bin/bash^M: bad interpreter

sed -i "s/\r//" iot_tac.sql

第四步:设置定时器

(1)增加一个cron定时任务

crontab -e

(2)按insert键进入编辑模式

00 * * * * /home/zhangs/iot_tac.sh >/home/zhangs/log/iot_tac.log

表示每小时执行一次shell脚本,并生成日志文件

minute: 区间为 0 – 59

hour: 区间为0 – 23

day-of-month: 区间为0 – 31

month: 区间为1 – 12. 1 是1月. 12是12月.

Day-of-week: 区间为0 – 7. 周日可以是0或7.

(3)按esc键退出编辑模式,再按shift+:输入:wq保存并退出

linux 执行远程linux上的shell脚本或者命令以及scp 上传文件到ftp--免密码登陆

场景:在linux A 上执行Linux B上的shell脚本和命令 步骤1.设置ssh免登陆 1.SSH无密码登录 # 本地服务器执行(A机器):生成密钥对 ssh-keygen -t dsa -P ...

Linux上使用shell脚本查看内存情况(超实用)

#!/bin/bashexport chknum=1 #shell搅拌存放目录(输出日志文件执行后也存于该目录)echo 3 > /wls/wls81/shellsyncwhile [ $chk ...

linux上使用shell脚本查看内存使用率

如上的内存利用率 = [-/+buffers/cache:used]/[Mem:total ] =  6293404 / 16333656 对于free命令而言,有如下公式: total = used ...

Linux下添加shell脚本使得nginx日志每天定时切割压缩

Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

Linux下定时执行脚本(转自Decode360)

文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 ...

实用脚本 2 -- Linux下定时执行脚本

今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来 ...

mac链接linux终端,shell脚本发布代码

项目的业务需求:从mac端直接连上linux服务终端,并发布相关的代码 一.使用ssh链接上linux服务端 1.cd ~/.ssh 2.vi config,按照下面的内容配置config文件,然后: ...

Java代码调用服务器上的Shell脚本

Java代码调用服务器上的Shell脚本 这里主要是因为我们报表平台有用到用户手工录入的数据作为结果数据且需要纳入saiku去展示 如我们所知,saiku不会自动刷新,所以需要在数据更新接口中调用服务 ...

随机推荐

一些用过的我常忘记的小知识(web前端)

背景图片固定:background-attachment:fixed 将图片的尺寸从中心点开始改变:backgroun-position:center   background-size: ** 旋转 ...

更高效地提高redis client多线程操作的并发吞吐设计

Redis是一个非常高效的基于内存的NOSQL数据库,它提供非常高效的数据读写效能.在实际应用中往往是带宽和CLIENT库读写损耗过高导致无法更好地发挥出Redis更出色的能力.下面结合一些redis ...

C# 连接SQL数据库 常用连接字符串

一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myP ...

R学习日记——分解时间序列(非季节性数据)

分解时间序列,就是将一个时间序列拆分成不同的构成元件.一般序列(非季节性序列)包含一个趋势部分和一个不规则部分(也就是随机部分),而如果是一个季节性序列,除以上两个外,还有季节性部分.   在此,我们 ...

PHP获取Post的原始数据方法小结(POST无变量名)

From : http://blog.csdn.net/hotdigger/article/details/6456240   一般我们都用$_POST或$_REQUEST两个预定义变量来接收POST ...

Python Django 实用小案例2

动态导入模块 Django返回序列化数据  动态导入模块 在Django里面,经常会看到一些方法或者类是动态导入,尤其是以settings文件为代表,经常把一些类放在里面动态调配,比如随便拿Djang ...

Spring Boot 整合mybatis-generator

Maven 引入 mybatis-generator插件 org.springf ...

mongodb从入门到精通

1.mongodb官网下载文件2.安装mongodb 3.配置安装成服务 4.记得连接的时候修改连接的ip地址 5.显示当前使用的数据库名——dbs 6.查找所有数据库——show dbs 7.查找所 ...

autocomplete 自动填充 combobox

目录(?)[-] autocomplete有两种 一种 是 jquery ui里的 autocomplete httpjqueryuicomautocomplete 另一种是 ASPNET AJAX ...

linux 定时执行搅拌,Linux上定时shell脚本相关推荐

  1. linux脚本调用db2存储过程,LINUX定时执行含有DB2存储过程的SHELL脚本

    <LINUX定时执行含有DB2存储过程的SHELL脚本>由会员分享,可在线阅读,更多相关<LINUX定时执行含有DB2存储过程的SHELL脚本(6页珍藏版)>请在人人文库网上搜 ...

  2. 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...

    如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...

  3. linux停止jar程序,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` CUR_SHELL_DIR=`pwd` CUR_SHELL_NAME=`basename ${ ...

  4. linux启动脚本springboot,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法

    废话不多说了,先给大家上代码,具体代码如下所示: #!/bin/bash cd `dirname $0` cur_shell_dir=`pwd` cur_shell_name=`basename ${ ...

  5. linux脚本查看系统内存,二个linux下查看内存使用情况的shell脚本()

    摘要 腾兴网为您分享:二个linux下查看内存使用情况的shell脚本(),政务易,悦作业,优化大师,王者荣耀等软件知识,以及单向历app,优路教育app,kimoji,开关电源设计软件,皮皮高清影视 ...

  6. java调用机器上的shell脚本

    java调用机器上的shell脚本,可以这样方便的通过shell脚本调用本机的C.C++等程序 Process process = null; Runtime runTime = Runtime.ge ...

  7. 签名证书无效”-在vCenter Server Appliance 6.5 / 6.7上使用Shell脚本重新生成和替换已过期的STS证书(76719)

    "签名证书无效"-在vCenter Server Appliance 6.5 / 6.7上使用Shell脚本重新生成和替换已过期的STS证书(76719) 上次更新时间:2020/ ...

  8. loadrunner11 linux服务器,Loadrunner怎么执行linux服务器上的shell脚本?

    java是可以执行shell脚本的,如下: //command就是你在linux上执行脚本的字符串命令 StringBuffer command = new StringBuffer(); comma ...

  9. linux 火狐无法执行二进制文件_尝试在Linux上运行Shell脚本时“无法执行二进制文件”...

    我对linux和shell编写非常陌生.我正在尝试使用以下命令从linux上的安全shell(ssh)运行shellscript: chmod +x path/to/mynewshell.sh sh ...

最新文章

  1. Pytorch上采样函数 包括interpolate
  2. 更新源列表及设置方法
  3. SharePoint 2010 文档库添加文件icon
  4. java的基本数据类型有
  5. 020_html格式化
  6. layui timeline使用
  7. python可视化文本分析(2)—snownlp jieba分析QQ群成员发言情况
  8. Python+django网页设计入门(6):文件上传与数据导入
  9. python使用lxml解析html获取页面内所有叶子节点的xpath路径
  10. 【UVA1592】Database (字符串读入技巧和map的使用)
  11. 【微服务】什么是SOA服务架构?
  12. vue 项目中 zip 压缩包文件下载
  13. 前端:计算滚动条距底部多远(距离底部的百分比)
  14. 【Cadence使用】PCB元器件匹配3D模型
  15. python中x%y是什么意思_python是什么
  16. 所谓情商高就是会说话(摘录)
  17. python十六进制转换成二进制流
  18. Oracle 同义词synonym创建和删除
  19. 铝阳极封孔废水除镍树脂CH-90
  20. 利用tushare和pandas获得沪深300指数在每个工作日的平均日收益率

热门文章

  1. OpenStack精华问答 | OpenStack是操作系统?
  2. linux内核关掉模块,强制关闭你的系统的内核模块 | Linux 中国
  3. mac mysql 的lb_四层LB和七层LB
  4. Docker Nacos Mysql集群
  5. mysql 8使用美团的Leaf算法(segment)
  6. Java实现首字母大写、驼峰命名与、划线转换,校验null
  7. 玩转 VS Code 专栏
  8. flowable实战(九)flowable数据库表中流程实例、活动实例、任务实例三者之间关系分析
  9. Ubuntu的配置(以ubuntu 20.04桌面版为例)
  10. websocket 获取连接id_Swoole学习笔记七:搭建WebSocket长连接 之 使用 USER_ID 作为身份凭证...