shell设置时间递减脚本
经常要用shell来做时间的定时任务,尤其是用sqoop脚本拉取数据的时候,那么假如当你要导入数据是残缺的时候呢,我写了一个能自定义时间并逐条递减的程序
#!/bin/bash
. /etc/profile
. ~/.bash_profile
set -x
cd $(dirname $0)
#ttt=259
for wl in $( seq 1 300); do
#statements
DATE1=$(date -d "${wl} day ago 20170725" +%Y-%m-%d) #20170725的前一天 遍历减一天
DATE2=$(date -d "$(($wl-1)) day ago 20170725" +%Y-%m-%d) #20170725这一天 遍历当天
dt=${DATE1//-/} #设置时间格式用于分区
done
如果想获得当前时间递减就把 ago 20170725去掉就可以了
运行命令: bash -test1.sh
运行结果:
++ export PATH
+ set -x
++ dirname test1.sh
+ cd .
+ HADOOP_BIN=/workspace/carkey/hadoop/latest/bin/hadoop
+ HIVE_BIN=/workspace/carkey/apache-hive-2.1.1-bin/bin/hive
+ SQOOP_BIN=/workspace/carkey/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/sqoop
++ seq 1 100
+ for ijk in '$( seq 1 100)'
++ date -d '1 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-24
++ date -d '0 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-25
+ dt=20170724
+ for ijk in '$( seq 1 100)'
++ date -d '2 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-23
++ date -d '1 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-24
+ dt=20170723
+ for ijk in '$( seq 1 100)'
++ date -d '3 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-22
++ date -d '2 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-23
+ dt=20170722
+ for ijk in '$( seq 1 100)'
++ date -d '4 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-21
++ date -d '3 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-22
+ dt=20170721
+ for ijk in '$( seq 1 100)'
++ date -d '5 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-20
++ date -d '4 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-21
+ dt=20170720
+ for ijk in '$( seq 1 100)'
++ date -d '6 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-19
++ date -d '5 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-20
+ dt=20170719
+ for ijk in '$( seq 1 100)'
++ date -d '7 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-18
++ date -d '6 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-19
+ dt=20170718
+ for ijk in '$( seq 1 100)'
++ date -d '8 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-17
++ date -d '7 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-18
+ dt=20170717
+ for ijk in '$( seq 1 100)'
++ date -d '9 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-16
++ date -d '8 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-17
+ dt=20170716
+ for ijk in '$( seq 1 100)'
++ date -d '10 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-15
++ date -d '9 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-16
+ dt=20170715
+ for ijk in '$( seq 1 100)'
++ date -d '11 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-14
++ date -d '10 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-15
+ dt=20170714
+ for ijk in '$( seq 1 100)'
++ date -d '12 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-13
++ date -d '11 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-14
+ dt=20170713
+ for ijk in '$( seq 1 100)'
++ date -d '13 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-12
++ date -d '12 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-13
+ dt=20170712
+ for ijk in '$( seq 1 100)'
++ date -d '14 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-11
++ date -d '13 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-12
+ dt=20170711
+ for ijk in '$( seq 1 100)'
++ date -d '15 day ago 20170725' +%Y-%m-%d
+ DATE1=2017-07-10
++ date -d '14 day ago 20170725' +%Y-%m-%d
+ DATE2=2017-07-11
+ dt=20170710
shell设置时间递减脚本的更多相关文章
- 使用 PHP + shell 生成 一键设置权限的脚本。
linux 系统 支持PHP脚本一键设置环境.shell脚本一键设置环境.那么 我今天 使用 PHP + shell 生成 一键设置权限的脚本. 举例子:linux服务器 一键配置discuz网站环 ...
- Shell文件权限和脚本执行
一.预备知识 1.shell的作用 2.常识 (1)Tab键自动补全 使用Terminal时,输入命令的前几个字母,敲tab会自动补全命令或文件名.目录等. 好处:操作速度更快:不容易出错: ...
- shell获取时间的相关命令
Linux shell获取时间和时间间隔(ms级别) 说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能 ...
- bash shell笔记6 脚本控制
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/522415 知 ...
- Linux shell批量执行scp脚本工具
转载: linux shell + expect:批量scp脚本工具 2011-09-13 15:51:06 分类: Python/Ruby 最近在准备一个部署的任务,其中有一 ...
- Shell日期时间和时间戳的转换
Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.ta ...
- 显示linux开机时间的脚本
最初的讨论是linux吧吧友@九十钩圈凯_ 发布的主题贴<加到自启动可以看开机时间的玩意> 并给出显示开机秒数的shell语句 [shell] [ $_UTED = 0 ] || noti ...
- 定时器解决js长时间运行脚本问题
一般地,单个js操作的运行时间不应超过100毫秒,否则的话,会影响用户体验,用户会认为自己与界面失去联系.而对于一些复杂的任务,可能无法在100ms内完成,甚至会突破浏览器限制(调用栈大小限制和长时间 ...
- Windows 客户端时间更新脚本NTP
Windows XP 客户端时间更新脚本NTP ::Windows XP 客户端时间更新脚本NTP reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...
随机推荐
- git——commit之后一直出现一个>
在网上搜了半天,也没见过有类似的情况,忘记具体是怎么解决的了,我记得是重新add了一遍,再commit就OK了 更新: 感谢@月下初拥的评论,找到了原因,可能是由于commit的注释结构有误造成的,比 ...
- 批量新增数据(BuckCopy)
批量新增数据(BuckCopy) 使用webService传输数据时要注意,Datatable中的数据类型,以及科学计数 /// <summary> /// 批量新增数据 /// < ...
- luoguP3690 【模板】Link Cut Tree (动态树)[LCT]
题目背景 动态树 题目描述 给定N个点以及每个点的权值,要你处理接下来的M个操作.操作有4种.操作从0到3编号.点从1到N编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor ...
- luoguP1288 取数游戏II [博弈论]
题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...
- Tomcat启动报:The Server time zone value 'XXXXX' 乱码问题解决
今天给自己项目打包到服务器发布时,运行时,发现报 java.sql.SQLException: The server time zone value '�й���ʱ��' is unrecogniz ...
- AcWing 156. 矩阵 (哈希二维转一维查询)打卡
给定一个M行N列的01矩阵(只包含数字0或1的矩阵),再执行Q次询问,每次询问给出一个A行B列的01矩阵,求该矩阵是否在原矩阵中出现过. 输入格式 第一行四个整数M,N,A,B. 接下来一个M行N列的 ...
- 互斥锁Demo
#include <stdio.h> #include <pthread.h> pthread_t work1Id; pthread_t work2Id; ; ; pthrea ...
- 记一次Tomcat运行失败记录
记一次Tomcat运行失败记录 如图tomcat运行之后会出现这样的情况,在网上百度之后大部分都说的是web.xml或者其他配置文件的问题,但是根据网上修改了之后却还是老样子. 这里有比较好的网址可以 ...
- 剑指offer——74求1+2+3+n
题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 题解: 利用类的构造和析构 //利用类的构 ...
- springMvc请求路径解析
一开始我的代码是: //index.jsp<%@ page contentType="text/html;charset=UTF-8" language="java ...