经常要用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设置时间递减脚本的更多相关文章

  1. 使用 PHP + shell 生成 一键设置权限的脚本。

    linux 系统 支持PHP脚本一键设置环境.shell脚本一键设置环境.那么 我今天 使用 PHP  + shell 生成 一键设置权限的脚本. 举例子:linux服务器 一键配置discuz网站环 ...

  2. Shell文件权限和脚本执行

    一.预备知识 1.shell的作用   2.常识 (1)Tab键自动补全   使用Terminal时,输入命令的前几个字母,敲tab会自动补全命令或文件名.目录等. 好处:操作速度更快:不容易出错: ...

  3. shell获取时间的相关命令

    Linux shell获取时间和时间间隔(ms级别) 说明:在进行一些性能测试的时候,有时候我们希望能计算一个程序运行的时间,有时候可能会自己写一个shell脚本方便进行一些性能测试的控制(比如希望能 ...

  4. bash shell笔记6 脚本控制

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/522415 知 ...

  5. Linux shell批量执行scp脚本工具

    转载: linux shell + expect:批量scp脚本工具             2011-09-13 15:51:06 分类: Python/Ruby 最近在准备一个部署的任务,其中有一 ...

  6. Shell日期时间和时间戳的转换

    Gitlab的备份文件是以时间戳显示的,类似:1438624820_gitlab_backup.tar 为了更易于阅读,想把文件名转换成日期格式:2015-08-04_gitlab_backup.ta ...

  7. 显示linux开机时间的脚本

    最初的讨论是linux吧吧友@九十钩圈凯_ 发布的主题贴<加到自启动可以看开机时间的玩意> 并给出显示开机秒数的shell语句 [shell] [ $_UTED = 0 ] || noti ...

  8. 定时器解决js长时间运行脚本问题

    一般地,单个js操作的运行时间不应超过100毫秒,否则的话,会影响用户体验,用户会认为自己与界面失去联系.而对于一些复杂的任务,可能无法在100ms内完成,甚至会突破浏览器限制(调用栈大小限制和长时间 ...

  9. Windows 客户端时间更新脚本NTP

    Windows XP 客户端时间更新脚本NTP ::Windows XP 客户端时间更新脚本NTP reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...

随机推荐

  1. sql INSERT语句

    当我们需要向数据库表中插入一条新记录时,就必须使用INSERT语句. INSERT语句的基本语法是: INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1 ...

  2. Service7

    在真机上,利用clone-vm7新建一台虚拟机,名字:PXE-Server     1.设置防火墙为trusted   2.当前及永久关闭SELinux   3.配置IP地址:192.168.4.16 ...

  3. DNS域名服务器的搭建

    父域的DNS(svr7): 可以解析父域名下保存的域名地址,即解析.tedu.cn下的域名 一.安装软件包bind.bind-chroot   bind是DNS解析服务需要用到的服务软件包,bind- ...

  4. 64 计算机图形学入门(1)——OpenGL环境配置与图形流水线(图像管线)

    0 引言 最近想学一下计算机图形学方面的知识,原因如下.目前本人接触了数字图像处理(opencv)以及点云处理(PCL)方面的知识,对从图像和点云中提取特征信息,并将特征转化为底层/中层语义信息有了一 ...

  5. WebBug靶场介绍篇 — 01

    今天是星期天,干点啥,反正一天没事,我也不想继续去搞 msf 的那些什么浏览器提权啊,PDF 提权啊,快捷方式提取啊,或者木马免杀什么的,毕竟现在我也不是为了去找工作而去学那些工具了,,, 说开这个靶 ...

  6. 如何查看bug属于前端还是后端

    1.F12下如何查看bug属于前端还是后端?前后端分离的项目,通过ajax向后端请求数据,如果后端返回的数据有问题,那么问题就是候选,如果返回的数据没有问题,但是展示结果异常那么问题一般就出在前端. ...

  7. winform界面设计

    http://www.cnblogs.com/wuhuacong/  这位大师给了我指导方向 http://officeribbon.codeplex.com 提供了ribbon界面的控件 动态web ...

  8. JWT(JSON Web Token) 多网站的单点登录,放弃session 转载https://www.cnblogs.com/lexiaofei/p/7409846.html

    多个网站之间的登录信息共享, 一种解决方案是基于cookie - session的登录认证方式,这种方式跨域比较复杂. 另一种替代方案是采用基于算法的认证方式, JWT(json web token) ...

  9. asp.net core网关Ocelot的简单介绍& Ocelot集成Identity认证

    文章简介  Ocelot网关简介 Ocelot集成Idnetity认证处理 Ocelot网关简介 Ocelot是一个基于netcore实现的API网关,本质是一组按特定顺序排列的中间件.Ocelot内 ...

  10. HTML5自定义属性的设置与获取

    <div id="box" aaa="bbb" data-info="hello"></div> <body& ...