linux 循环小时,shell脚本日期遍历(按天按小时)
使用shell脚本遍历日期
1. 按天倒序遍历日期 ( 正序修改一下日期增减函数即可 )
#!/bin/bash
#倒序按天遍历日期
#传入遍历的开始时间和结束时间
startdate="$1"
enddate="$2"
echo 'startdate: '$startdate
echo 'enddate: '$enddate
echo "-----------------------------------"
#序列1-300,表示遍历300次,因为有结束时间的限制,所以实际上不会循环300次
for i in `seq 1 300`; do
#当开始时间小于结束时间时,直接结束脚本
if [[ $startdate -lt $enddate ]]; then
break
fi
echo $startdate
#执行hiveSQL脚本,我是需要按日期执行hiveSQL,这里可以无视
hive -hiveconf input_date=$startdate -f mergeSmallFiles.sql # >> mergeSmallFiles.txt
#每次执行后,使开始日期减一天,如果要正序,将下面-1换成+1即可,当然开始时间和结束时间也要换一下
startdate=$(date -d "$startdate -1 day" +%Y%m%d)
done
运行结果如下:
2. 按小时倒序遍历日期 ( 正序修改一下日期增减函数即可 )
因为shell中没有小时加减的函数,所以这里要做几个步骤:
#!/bin/bash
#倒序按小时遍历时间
startdate="$1"
enddate="$2"
echo 'startdate: '$startdate
echo 'enddate: '$enddate
echo "-----------------------------------"
for i in `seq 1 300`; do
if [[ $startdate -lt $enddate ]]; then
break
fi
echo $startdate
#拼接成YYYYmmdd HH的格式,否则使用下个命令中+%s,会无法转换
startdate=${startdate:0:4}"-"${startdate:4:2}"-"${startdate:6:2}" "${startdate:8:2}
#转换成时间戳,+%s为时间格式
startdate=$(date +%s -d "$startdate")
#每次执行后,开始日期减一个小时
startdate=$(($startdate-1*60*60))
#时间戳转正常格式时间
startdate=$(date +%Y%m%d%H -d "1970-01-01 UTC $startdate seconds")
#执行hiveSQL脚本,可以无视掉
hive -hiveconf input_date=$startdate -f mergeSmallFiles.sql # >> mergeSmallFiles.txt
done
运行结果如下:
linux 循环小时,shell脚本日期遍历(按天按小时)相关推荐
- linux循环条件,shell脚本编写 之 条件选择,条件判断,循环语句
1 概述 编写shell脚本,一般离不开条件选择,条件判断以及循环语句.掌握这三个语法,将大大提高脚本的编写效率,使得脚本编写更加灵活,完成X相对复杂的工作 2 条件选择if语句 if语句选择执行,逐 ...
- linux 循环每个月,SHELL脚本每月最后一天判断
#!/bin/bash ####函数定义 function monBigorSmall() { big_month=(1 3 5 7 8 10 12) small_month=(4 6 9 11) y ...
- linux下执行shell脚本文件,Linux下使用shell脚本自动执行脚本文件
搜索热词 以下实例本人在Centos6.5 64位操作系统中使用 一.定时复制文件 a.在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件 #将tomcat中 ...
- Linux 定时执行shell 脚本
2019年第 85 篇文章,总第 109 篇文章 本文大约2000字,阅读大约需要6分钟 crontab 可以在指定的时间执行一个shell脚本以及执行一系列 Linux 命令. 定时执行shell ...
- linux定时执行shell脚本
linux定时执行shell脚本 需求:每分钟检查下文件是否存在 解决思路: 1.编写shell脚本,检查文件是否存在,存在在文件中记录yes,不存在记录no 2.将脚本加入linux定时任务cron ...
- linux下的shell脚本,linux下的shell脚本的使用
什么是shell? Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户.这种对话方式可是交互 ...
- linux 定时执行搅拌,Linux上定时shell脚本
本文主要介绍在Linux系统上部署定时器,定时执行shell脚本,通过脚本执行sql文件 sql文件 -- 创建表 create table if not exists iot_test.iot_ta ...
- linux执行shell过程日志,Android之在linux终端执行shell脚本直接打印当前运行app的日志...
1.问题 我们一般很多时候会需要在ubuntu终端上打印当前运行app的日志,我们一般常见的做法是 1).获取包名 打开当前运行的app,然后输入如下命令,然后在第一行TASK后面的就可以看到包名 a ...
- shell脚本:遍历指定文件夹下.jar后缀的文件,并备份到目标文件夹
shell脚本:遍历指定文件夹下.jar后缀的文件,并备份到目标文件夹 批量备份源文件夹下的所有jar包 并用原名+日期时间重命名 过程如下: 创建一个sh文件: vim test.sh 按 i 进入 ...
最新文章
- 想学新的编程语言?考虑下Go吧
- 计算机二级c常用函数,计算机等级考试二级C语言的常用库函数试题
- 【 MATLAB 】unmkpp 函数介绍
- TSQL--NESTED LOOPS JOIN
- 在简历中应用STAR法则
- c语言 数组递减输出,合并两个线性表(数组)并按照非递减排序输出,有点问题过来看看...
- 如何远程调试部署在CloudFoundry平台上的nodejs应用
- xpath 取标签下所有文字内容_xpath提取目录下所有标签内的内容,递归 //text()...
- 关于wsgi协议的理解
- qt调用仪器驱动库dll实现程控
- 电工基础知识电线电缆常识80问答
- EEGLAB合辑 | 第一节 往EEGLAB导入数据
- 微信群管理机器人php,一个人管理微信群太累,试试可以自动管群微信机器人
- 阿里天池大数据竞赛——口碑商家客流量预测 A1
- 关于Chrome浏览器书签被更改的分析
- background 互联网图片_微信小程序 background-image设置背景图片不显示的解决办法...
- Windows主机操作系统安全加固规范
- 牛客华为机试-查找排序
- 淘宝商城 入住费用
- perl脚本提取后仿中的notimingcheck路径
热门文章
- 关于java中数据类型叙述正确的是( )_关于Java中数据类型叙述正确的是:
- Javascript变量的使用第三课
- 大理大学日常作业计算机基础知识,大理学院成人高等教育大学计算机基础课程作业.doc...
- turtle fillcolor_超详细!turtle库的使用
- linux管道和tee命令
- Vue.创建工程卡住
- Requests接口测试(五)
- js,css压缩工具
- PowerDesigner模型设计1
- ffmpeg七大库功能介绍——机翻、非人话