`

shell按日期的循环

 
阅读更多

        经常有需要按日期运行脚本补数据。有时候是好几天的。但是可能整个过程下来会超过24个小时。

最早的时候是这样的一个方案。

for((i=0;i<10;i++));
do
       date=`date -d  "$i days ago" +"%Y%m%d"`
       sh dojob.sh $date
done

 

        这个方案的不足就是,跨天之后,会漏掉某个日期。后来诞生了一个用配置文件的方法。把要搞的日期写到一个文本里。每行写一个日期。

file=/data/datelist.txt

while read day
do
      sh dojob.sh ${day}

done < $file

 

         这个方案就是利用了类似配置文件的方法。对于离散的日期,可以这样的方式来实现。

 

        对于方案1,还有一种修改的方案。就是利用数组的方式。

 

for day in {20160801..20160811}
do
      sh dojob.sh $day
done

 

           不足之处就是没办法跨月。所以还可以利用时间戳来处理。

 

 

startDate='20160621'
endDate='20180620'

for((ts=`date -d "${startDate}" +"%s"`;ts<=`date -d "${endDate}" +"%s"`;ts+=86400 ));
do
     day=`date  -d @${ts} +"%Y%m%d"`
     sh dojob.sh $day
done

 

          上例的再次改良版本(时间跨度可以支持年,月,日):

 

startDate=20171201
endDate=20171205
while [[ $startDate -le $endDate ]];
do
   echo $startDate
   startDate=`date -d "$startDate 1 days" +"%Y%m%d"`
done

 

 

分享到:
评论

相关推荐

    shell脚本循环调度程序

    ### shell脚本循环调度程序知识点解析 #### 一、标题:shell脚本循环调度程序 ...二是针对给定的年月数组,按月逐日循环执行相同的任务。这样的设计使得脚本既灵活又高效,适用于多种自动化调度场景。

    shell 计算日期

    - **实现方法**: 通过`cut`命令获取输入日期的年月日,然后循环计算前N天的具体日期。 ##### 4. `getlastFri` 此函数用于计算指定日期前最近的一个星期五的具体日期。 ```bash getlastFri() { now=$1 todayweek=`...

    linux shell中实现循环日期的实例代码

    在Linux Shell脚本编程中,有时我们需要处理与日期相关的任务,比如遍历或循环特定日期范围。本篇文章将深入探讨如何在Linux Shell中实现这样的功能,特别是如何在给定的两个日期之间进行循环。 首先,让我们看看...

    shell脚本练习题

    根据提供的文件内容,我们可以归纳出一系列与Shell脚本相关的知识点,包括如何编写基本的脚本来完成特定任务,例如处理文件、目录操作、条件判断、循环结构等。下面将逐一解析这些练习题涉及的关键知识点。 ### ...

    shell通过遍历输出两个日期范围内所有日期的方法

    ### Shell脚本遍历输出两个日期范围内所有日期的方法 #### 前言 在软件开发过程中,特别是涉及大量数据处理的应用场景中,日期处理是一项常见的需求。比如统计某个时间段的数据,或者是按照时间顺序进行文件归档等...

    Shell脚本遍历一个日期范围实例

    通过这种方式,Shell脚本可以有效地处理日期范围遍历的任务,这对于日志分析、定时任务调度或者需要按日期处理数据的任何场景都非常有用。理解这个脚本的工作原理对于编写类似的自动化脚本非常有帮助,因为日期处理...

    250个shell脚本

    这展示了Shell脚本在安全领域的应用,结合正则表达式和循环结构处理日志数据。 2. Linux系统告警脚本:这个脚本用于发送系统告警邮件,例如在系统发生特定事件时。它演示了如何设置mailx工具发送邮件,以及使用vi...

    shell脚本按当前日期输出日志的实现

    总结来说,shell脚本按当前日期输出日志的实现主要涉及以下知识点: 1. 变量定义与赋值:如`name="xiongzaiqiren"`。 2. 使用`echo`命令输出信息。 3. `date`命令获取当前日期和时间,使用`+%Y-%m-%d %H:%M:%S`等...

    109个shell脚本合集.pdf

    我们使用date命令来获取当前日期,并使用mv命令来移动日志文件。 Shell脚本可以自动切割日志文件,以便更好地管理日志。 通过这些Shell脚本,我们可以更好地管理我们的计算机系统,提高工作效率,节省时间。熟练...

    109个shell脚本合计

    单循环脚本备份所有数据库,而多循环脚本则进一步按表进行备份。它们都使用mysqldump工具,通过指定的用户名、密码和主机名连接到MySQL服务器,获取数据库列表,然后创建对应的备份文件。这为定期数据库维护提供了...

    Shell脚本编程100例

    `tar`命令用于打包压缩文件,`date`命令获取当前日期,`%Y%m%d`格式化日期。`crontab -e`编辑cron定时任务,例子中每周五3点进行日志备份。 4. **一键部署LNMP**:`yum`是包管理器,用于安装和管理软件包。这里使用...

    unix shell程序设计

    控制语句如`if`、`case`、`while`和`for`允许根据条件或循环结构执行不同的命令。此外,标点符号如`;`用于分隔命令,`&`用于后台执行命令,`|`用于命令间的数据流重定向。 通过shell程序设计,用户能够将一系列的...

    100个shell脚本合集

    4. Nginx 访问日志按天切割:为了便于日志分析和存储管理,通常会将日志文件按日期进行分割。shell脚本可以每天执行一次,根据当前日期创建新的日志文件,并将旧日志重命名,以便后续分析。 5. Nginx 访问日志分析...

    Shell脚本编程详解

    此外,`表达式比较、循环结构语句和条件结构语句`是Shell编程的核心。例如,`if`语句用于条件判断,`for`和`while`循环用于重复执行部分代码。`case`语句则提供了一种多分支选择结构。这些结构使得脚本能根据不同的...

    linux和shell教程

    通过变量、条件语句、循环结构和函数等,Shell脚本可以实现复杂的任务自动化。例如,编写一个简单的脚本来备份指定目录: ``` #!/bin/bash backup_dir="backup" src_dir="documents" tar -czvf $backup_dir/$...

    UNIX实验---考勤程序--shell编程

    3. **条件语句和循环**:Shell编程中的`if`、`else`、`fi`用于条件判断,`for`、`while`用于循环。这些结构可以用来检查员工的签到状态,如判断某一天是否已签到。 4. **日期和时间操作**:利用`date`命令获取当前...

    shell 编程指南pdf

    11.1.9 按指定域分类 106 11.1.10 数值域分类 106 11.1.11 唯一性分类 107 11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail...

    SHELL基础十二篇

    6. **循环结构**:for循环用于遍历序列,如`for i in {1..10}`,while循环则根据条件反复执行,如`while [ condition ]; do commands; done`。 7. **函数定义**:定义Shell函数可以重复利用代码,如`function func...

Global site tag (gtag.js) - Google Analytics