我希望基于来运行CRON作业列表TZ=America/New_York
,并避免手动(逐行)设置CRON作业,因为我的CRON作业正在增加,并且我还将拥有应每分钟运行以从API获取数据的PHP脚本。 。
这是我的[第一次]伪bash脚本尝试,肯定会遇到几个问题,这样做似乎是不正确的。
如何使与时间相关的CRON作业列表自动化?
手动CRON作业设置和测试的替代方法有哪些?
也许,最好/可能是用我所有的CRON作业编写一个PHP文件,然后设置一个CRON作业来运行该PHP文件?
#!/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 exchanges
export TZ=America/New_York
server_name="$USER"
##Runs on live server
if [[ server_name=="em" ]]; then
echo "CRON jobs only run on live servers ?";
exit
fi
#Market times: Before Premarket, Pre-market, Normal Market hours, Post-Market, After post market
pre_market_open=03:00
start_normal_market=09:00
end_normal_market=17:00
post_market_close=21:00
current_time=$(date '+%H:%M')
# current_time=5:23
#Read variables
IFS=: 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))
扬帆大鱼