浅墨散人 浅墨散人
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • 基础
  • 设计模式
  • JVM
  • Maven
  • SpringBoot
  • 基础
  • Flask
  • Diango
  • Pandas
  • SqlAlchemy
  • Sqoop
  • Flume
  • Flink
  • Hadoop
  • Hbase
  • Hive
  • Kafka
  • Kylin
  • Zookeeper
  • Tez
  • MySQL
  • Doris
  • Chrome
  • Eclipse
  • IDEA
  • iTerm2
  • Markdown
  • SublimeText
  • VirtualBox
  • WebStrom
  • Linux
  • Mac
  • Hexo
  • Git
  • Vue
  • VuePress
  • 区块链
  • 金融
数据仓库
数据治理
读书笔记
关于我
GitHub (opens new window)
  • Linux

    • Linux
    • Shell基础
    • Linux中yum与rpm区别
    • Linux的date常用操作
    • Shell编码规范
    • Shell批量执行脚本
      • 批量执行shell脚本
  • System
  • Linux
2018-10-10
目录

Shell批量执行脚本

# 批量执行shell脚本

该脚本用于执行一个shell脚本一段时间的功能

例如:跑批执行a.sh 的2018-10-01 至 2018-10-31日的数据

使用方法:sh batch_exec_script.sh a.sh 2018-10-01 2018-10-31

#!/bin/bash

# ==================================================
# created info  : zfang 2018-09-18
# Desc          : 批量执行脚本,用于历史追数
# exec example  : sh batch_exec_script.sh 参数1:脚本全路径  参数2:开始日期yyyy-mm-dd  参数3:结束日期yyyy-mm-dd
# change log    :
# ==================================================

function check_param()
{
	if [[ $# -eq 3 ]]; then
		file_name="${1}"
		start_dt="${2}"
		end_dt="${3}"
	else
		echo -e "\033[0;31;1m错误:${filename}请传入参数。 
参数1:脚本全路径
参数2:开始日期yyyy-mm-dd  
参数3:结束日期yyyy-mm-dd \033[0m"
		exit 1
	fi
}


function batch_exec()
{
	echo -e "\033[36m===============处理时间范围:${start_dt} 至 ${end_dt}===============\033[0m"

	datebeg=$(date -d "${start_dt}" +%s)
	dateend=$(date -d "${end_dt}" +%s)

	# echo $(date -d @$datebeg +"%Y-%m-%d")
	# echo $(date -d @$dateend +"%Y-%m-%d")
	while [ "${datebeg}" -le "${dateend}" ];do
		day=$(date -d @$datebeg +"%Y-%m-%d")
		echo -e "\033[36m====>`date +"%Y-%m-%d %H:%M:%S"` 正在处理${day}日期数据..........\033[0m"
		bash ${file_name} ${day}
		datebeg=$((datebeg+86400));
	done

	echo -e "\033[36m提示:${start_dt} 至 ${end_dt}日期全部处理完成!\033[0m"

}


function main()
{
	check_param "$@"
	batch_exec
}

main "$@"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#Linux#Shell
最后更新时间: 2022/7/23 10:17:11
Shell编码规范

← Shell编码规范

最近更新
01
分区分桶
08-21
02
数据模型(重要)
08-21
03
安装和编译
08-21
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式