经常要用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. js设计模式——4.迭代器模式

    js设计模式——4.迭代器模式 代码演示 /*js设计模式——迭代器模式*/ class Iterator { constructor(container) { this.list = contain ...

  2. idea整合springboot,访问templates下html资源问题

    1.pom.xml文件中要引入themyleaf 2.在application.properties文件中加入 #拼接html前后缀spring.resources.static-locations= ...

  3. Go语言中接口组合的实现方法

    在Go语言中,可以在接口A中组合其它的一个或多个接口(如接口B.C),这种方式等价于在接口A中添加接口B.C中声明的方法. 代码如下: //接口中可以组合其它接口,这种方式等效于在接口中添加其它接口的 ...

  4. I/O复用 poll简介

    1.基本概念 poll起源于SVR3,开始时局限于流设备,在SVR4时取消了此限制,允许poll工作在任何描述符上,但涉及到流设备时,它还提供了附加信息. poll的机制与select类似,与sele ...

  5. sql server 2008 数据库数据类型

    sql server 2008 数据库数据类型 一.数值型 int:整数类型,它的精度由执行机构确定.. smallint:短整数类型,它的精度由执行机构确定.. numeric(p,s):数值型,并 ...

  6. JBoss、Tomcat、JBoss EAP、JBoss AS、wildfly,JBoss EAP安装部署,JBoss各个版本下载,JBoss允许远程访问

    感谢: https://www.cnblogs.com/invlong/p/5983334.html https://blog.csdn.net/mooncarp/article/details/78 ...

  7. Java反射机制调用私有方法

    1.获取目标类: 每个类都有一个class属性,通过实体类的class属性获取: Class clazz = Person.class 通过对象获取.  Person p1 = new Person( ...

  8. 剑指offer——74求1+2+3+n

    题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C).   题解: 利用类的构造和析构 //利用类的构 ...

  9. Android Telephony分析(六) ---- 接口扩展(实践篇)

    本文将结合前面五篇文章所讲解的知识,综合起来,实现一个接口扩展的功能.如果还没有阅读过前面五篇文章的内容,请先阅读:<Android Telephony分析(一) — Phone详解 >& ...

  10. linux每日命令(3):which命令

    这个命令我也神佑体会它的用处,在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which     查看可执行文件的位置. whereis 查看文件的位置. locate ...