Linux系列---【shell脚本-模拟手动跑每天的定时任务】
  Afe4H47zX3K6 2023年11月08日 30 0

问题背景

上线的时候经常会遇到这样的问题,上线一个每天跑的定时任务,一般跑最近一年的数据,上线的时候需要手动跑过去最近一年的数据,手动肯定不方便,于是这里写了一个好用的shell脚本,来降本增效。

shell脚本

#!/bin/bash

# 设置循环的日期范围
start_date="20230801"
end_date="20230810"

# 将日期转换为时间戳的函数
timestamp() {
  date -d "$1" +%s
}

# 打印日志函数
log() {
  echo "$(date "+%Y-%m-%d %H:%M:%S"): $1"
}

# 循环日期范围
current_date=$(date -d "$start_date" "+%Y%m%d")
end_timestamp=$(timestamp "$end_date")

while [ $(timestamp "$current_date") -le "$end_timestamp" ]; do
  log "Processing date: $current_date"

  # 执行 Curl 命令调用指定 URL
  echo "curl -s -X GET http://localhost:8084/test?execDay=$current_date&success=true"
  code=$(curl -s -X GET "http://localhost:8084/test?execDay=$current_date&success=true"|grep '"code":[0-9]*'|awk -F '[:,}]' '/"code":/{print $2}')
  
  echo "response code: $code"
  # 判断返回字段 code 是否为 200
  if [ "$code" == 200 ]; then
    log "Curl request successful. Continuing..."
    # 可以在这里添加继续执行的逻辑:
  else
    log "Curl request failed. Exiting..."
    exit 1
  fi

  # 增加一天
  current_date=$(date -d "$current_date + 1 day" "+%Y%m%d")
done

愿你走出半生,归来仍是少年!



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: BTX主板 下一篇: 好用的工具函数
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
Afe4H47zX3K6