为了账号安全,请及时绑定邮箱和手机立即绑定

如何自动运行一长串与时间相关的CRON作业?

如何自动运行一长串与时间相关的CRON作业?

PHP
慕妹3146593 2021-04-26 21:38:16
我希望基于来运行CRON作业列表TZ=America/New_York,并避免手动(逐行)设置CRON作业,因为我的CRON作业正在增加,并且我还将拥有应每分钟运行以从API获取数据的PHP脚本。 。这是我的[第一次]伪bash脚本尝试,肯定会遇到几个问题,这样做似乎是不正确的。如何使与时间相关的CRON作业列表自动化?手动CRON作业设置和测试的替代方法有哪些?也许,最好/可能是用我所有的CRON作业编写一个PHP文件,然后设置一个CRON作业来运行该PHP文件?伪Bash脚本#!/bin/bash# There are three times that CRON jobs should be running:# During pre-market exchanges# During normal market hours# During after hours or post-market exchangesexport TZ=America/New_Yorkserver_name="$USER"##Runs on live serverif [[ server_name=="em" ]]; then    echo "CRON jobs only run on live servers ?";    exitfi#Market times: Before Premarket, Pre-market, Normal Market hours, Post-Market, After post marketpre_market_open=03:00start_normal_market=09:00end_normal_market=17:00post_market_close=21:00current_time=$(date '+%H:%M')# current_time=5:23#Read variablesIFS=: read hour_pre_market_open min_pre_market_open <<< "$pre_market_open"IFS=: read hour_start_normal_market min_start_normal_market <<< "$start_normal_market"IFS=: read hour_end_normal_market min_end_normal_market <<< "$end_normal_market"IFS=: read hour_post_market_close min_post_market_close <<< "$post_market_close"IFS=: read hour_current_time min_current_time <<< "$current_time"#Calculate total minutes total_pre_market_open_min=$((10#$hour_pre_market_open*60 + 10#$min_pre_market_open))total_start_normal_market_min=$((10#$hour_start_normal_market*60 + 10#$min_start_normal_market))total_end_normal_market_min=$((10#$hour_end_normal_market*60 + 10#$min_end_normal_market))total_post_market_close_min=$((10#$hour_post_market_close*60 + 10#$min_post_market_close))total_current_time_min=$((10#$hour_current_time*60 + 10#$min_current_time))
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

bash无法识别Cron计划字符串(29 0 1 1 *)。您可以尝试编写一些东西来解析它们,并决定在当前时间与模式匹配时做一些事情……但这就是Cron已经做的事情。

不要为此使用bash;使用Cron。

另请参阅crontab在某些小时之间每15分钟运行一次


查看完整回答
反对 回复 2021-05-07
  • 1 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信