如何在一个时间周期内运行shell脚本

前几天在工作中遇到需要在一个时间周期内每小时传一个时间参数运行脚本的需求,查了一下,成功解决问题,脚本如下:

#!/bin/bash
set -x
begin=$1
end=$2
be_s="${begin:0:8} ${begin:8:2}"
en_s="${end:0:8} ${end:8:2}"
be_s=$(date -d "${be_s}" +%s)
en_s=$(date -d "${en_s}" +%s)


while [ "$be_s" -le "$en_s" ]
do
        datefmt=`date -d "1970-01-01 UTC ${be_s} seconds" +%Y%m%d%H` #datefmt为天级日期
        #添加处理代码,日期为${datefmt}
        sh ftp_upload.sh ${datefmt}
        be_s=$((be_s+3600))
done

其中,begin为起始时间形如2018040501,end为结束时间形如2018042501

由于脚本需要接受两个参数day和hour,则先把参数分割为两部分,即be_s,然后将两个参数传给脚本,成功运行。

-le为小于等于的意思。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值