经常有需要按日期运行脚本补数据。有时候是好几天的。但是可能整个过程下来会超过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脚本循环调度程序 ...二是针对给定的年月数组,按月逐日循环执行相同的任务。这样的设计使得脚本既灵活又高效,适用于多种自动化调度场景。
- **实现方法**: 通过`cut`命令获取输入日期的年月日,然后循环计算前N天的具体日期。 ##### 4. `getlastFri` 此函数用于计算指定日期前最近的一个星期五的具体日期。 ```bash getlastFri() { now=$1 todayweek=`...
在Linux Shell脚本编程中,有时我们需要处理与日期相关的任务,比如遍历或循环特定日期范围。本篇文章将深入探讨如何在Linux Shell中实现这样的功能,特别是如何在给定的两个日期之间进行循环。 首先,让我们看看...
根据提供的文件内容,我们可以归纳出一系列与Shell脚本相关的知识点,包括如何编写基本的脚本来完成特定任务,例如处理文件、目录操作、条件判断、循环结构等。下面将逐一解析这些练习题涉及的关键知识点。 ### ...
### Shell脚本遍历输出两个日期范围内所有日期的方法 #### 前言 在软件开发过程中,特别是涉及大量数据处理的应用场景中,日期处理是一项常见的需求。比如统计某个时间段的数据,或者是按照时间顺序进行文件归档等...
通过这种方式,Shell脚本可以有效地处理日期范围遍历的任务,这对于日志分析、定时任务调度或者需要按日期处理数据的任何场景都非常有用。理解这个脚本的工作原理对于编写类似的自动化脚本非常有帮助,因为日期处理...
这展示了Shell脚本在安全领域的应用,结合正则表达式和循环结构处理日志数据。 2. Linux系统告警脚本:这个脚本用于发送系统告警邮件,例如在系统发生特定事件时。它演示了如何设置mailx工具发送邮件,以及使用vi...
总结来说,shell脚本按当前日期输出日志的实现主要涉及以下知识点: 1. 变量定义与赋值:如`name="xiongzaiqiren"`。 2. 使用`echo`命令输出信息。 3. `date`命令获取当前日期和时间,使用`+%Y-%m-%d %H:%M:%S`等...
我们使用date命令来获取当前日期,并使用mv命令来移动日志文件。 Shell脚本可以自动切割日志文件,以便更好地管理日志。 通过这些Shell脚本,我们可以更好地管理我们的计算机系统,提高工作效率,节省时间。熟练...
单循环脚本备份所有数据库,而多循环脚本则进一步按表进行备份。它们都使用mysqldump工具,通过指定的用户名、密码和主机名连接到MySQL服务器,获取数据库列表,然后创建对应的备份文件。这为定期数据库维护提供了...
`tar`命令用于打包压缩文件,`date`命令获取当前日期,`%Y%m%d`格式化日期。`crontab -e`编辑cron定时任务,例子中每周五3点进行日志备份。 4. **一键部署LNMP**:`yum`是包管理器,用于安装和管理软件包。这里使用...
控制语句如`if`、`case`、`while`和`for`允许根据条件或循环结构执行不同的命令。此外,标点符号如`;`用于分隔命令,`&`用于后台执行命令,`|`用于命令间的数据流重定向。 通过shell程序设计,用户能够将一系列的...
4. Nginx 访问日志按天切割:为了便于日志分析和存储管理,通常会将日志文件按日期进行分割。shell脚本可以每天执行一次,根据当前日期创建新的日志文件,并将旧日志重命名,以便后续分析。 5. Nginx 访问日志分析...
此外,`表达式比较、循环结构语句和条件结构语句`是Shell编程的核心。例如,`if`语句用于条件判断,`for`和`while`循环用于重复执行部分代码。`case`语句则提供了一种多分支选择结构。这些结构使得脚本能根据不同的...
通过变量、条件语句、循环结构和函数等,Shell脚本可以实现复杂的任务自动化。例如,编写一个简单的脚本来备份指定目录: ``` #!/bin/bash backup_dir="backup" src_dir="documents" tar -czvf $backup_dir/$...
3. **条件语句和循环**:Shell编程中的`if`、`else`、`fi`用于条件判断,`for`、`while`用于循环。这些结构可以用来检查员工的签到状态,如判断某一天是否已签到。 4. **日期和时间操作**:利用`date`命令获取当前...
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...
6. **循环结构**:for循环用于遍历序列,如`for i in {1..10}`,while循环则根据条件反复执行,如`while [ condition ]; do commands; done`。 7. **函数定义**:定义Shell函数可以重复利用代码,如`function func...