首页 > 系统相关 >Linux系列---【shell脚本-模拟手动跑每天的定时任务】

Linux系列---【shell脚本-模拟手动跑每天的定时任务】

时间:2023-10-08 17:11:23浏览次数:42  
标签:current code log +% timestamp --- shell Linux date

问题背景

上线的时候经常会遇到这样的问题,上线一个每天跑的定时任务,一般跑最近一年的数据,上线的时候需要手动跑过去最近一年的数据,手动肯定不方便,于是这里写了一个好用的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

标签:current,code,log,+%,timestamp,---,shell,Linux,date
From: https://www.cnblogs.com/hujunwei/p/17749639.html

相关文章

  • # 2023-2024-1 20231311《计算机基础与程序设计》第2周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/homework/12998这个作业的目标自学教材,计算机科学概论第1章并完成云班课测试,《C语言程序设计》第1......
  • 10:信息收集-资产监控拓展
    1、本课重点#Github监控便于收集整理最新exp或poc便于发现相关测试目标的资产#各种子域名查询#DNS,备案,证书#全球节点请求cdn枚举爆破或解析子域名对应便于发现管理员相关的注册信息#黑暗引擎相关搜索 fofa,shodan,zoomeye#微信公众号接口获取......
  • Linux检测远程服务器端口的几种方法
    1,telnet命令检测telnet是Windows和Linux上最常用的检查端口的命令。此命令的简单用法是telnetip地址(或者域名)端口。如果执行telnet命令提示命令未发现,请执行"yuminstalltelnet"。[root@localhostetc]#telnetwww.baidu.com443 通过上图可以看出,百度htt......
  • LitCTF 2023--Reverse
    世界上最棒的程序员(签到题,进去就送)进IDA或者OD都可以:拿到LitCTF{I_am_the_best_programmer_ever}ez_xor(简单异或)进IDA能看到大大的XOR拿到异或的文档“E`}J]OrQF[V8zV:hzpV}fVF[t”,因为是简单的异或,用这个来运行一下,动调即可:拿到LitCTF{XOR_1s_3asy_to_OR}enbase64进IDA......
  • git - rebase 使用
    原理一句话总结就是:把当前分支从搬到目标分支之上。首先,执行rebase操作时会先找到当前分支和目标分支的最近共同commit。然后记录下当前分支自这个共同commit以来的所有提交。之后分别将记录中的commit应用到目标分支上,类似于cherry-pick。如果遇到冲突需要先解决冲突。最后......
  • 08:信息收集-架构,搭建,WAF等
    前言:在安全测试中,信息收集是非常重要的一个环节,此环节的信息将影响到后续的成功几率,掌握信息的多少将决定发现漏洞机会大小,换言之决定着是否能完成目标的测试任务。也可以很直接的跟大家说:渗透测试的思路就是从信息收集这里开始,你与大牛的差距也是从这里开始的!申明:涉及的网......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第二周学习总结
    2023-2024-120231309《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第二周作业这个作业的目标作业正文2023-2024-120231309《计算机基础......
  • Unity 通信方案 - 使用 Google Protobuf 序列化数据
    1.下载和编译1.1下载ProtoBuf源文件从github下载最新的protoBuf库,如下图所示 Releases·protocolbuffers/protobuf(github.com)1.2编译dll和导入解压后打开/scharp/src中的sln工程文件 选择Release,Google.Protobuf,之后在生成中生成文件在......
  • redis-cluster nodes命令信息说明
     集群定义1.1每个字段的含义如下:1.id:节点ID,一个40字节的随机字符串,节点创建时生成,且不会变化(除非使用CLUSTERRESETHARD命令)。2.ip:port:客户端访问的地址。3.flags:逗号分隔的标记位,可能值有:myself,master,slave,fail?,fail,handshake,noaddr,noflags......
  • The 2nd Universal Cup. Stage 4: Taipei - I(状压DP)
    目录I.IntervalAdditionI.IntervalAddition题意给定一个长度为n$(1\len\le23)$的数组a。你可以进行一种操作:选择区间\([l,r]\)并给这个区间所有的数都加上一个任意的数。问你使得整个数组均为0所需的最小操作次数?思路考虑差分数组无论怎么对于区间\([l,r......