5
5
# Intro: https://github.com/luolongfei/freenom #
6
6
# ===================================================================#
7
7
8
- set -e
9
-
10
8
# 自定义颜色变量
11
9
red=' \033[0;31m'
12
10
green=' \033[0;32m'
@@ -21,30 +19,33 @@ PHP_COMMAND='/usr/local/bin/php /app/run > /app/logs/freenom_cron.log 2>&1'
21
19
22
20
# 指定脚本执行时间
23
21
if [ -z " ${RUN_AT} " ]; then
24
- minute=$( shuf -i 0-59 -n 1 )
25
- hour=$( shuf -i 6-23 -n 1 )
22
+ minute=$( shuf -i 0-59 -n 1)
23
+ hour=$( shuf -i 6-23 -n 1)
26
24
CRON_COMMAND=" ${minute} ${hour} * * * ${PHP_COMMAND} "
27
25
echo -e " [${green} Info${plain} ] 已自动指定执行时间,续期任务将在北京时间每天 「${hour} :${minute} 」 执行"
28
26
echo -e " [${green} Info${plain} ] 在没有手动指定 RUN_AT 环境变量的情况下,每次重建容器,程序都会重新在 06 ~ 23 点全时段中自动随机指定一个执行时间,目的是防止很多人在同一个时间点执行任务导致 Freenom 无法稳定提供服务"
29
27
else
30
28
if [[ " ${RUN_AT} " =~ ^([01][0-9]| 2[0-3]| [0-9]):([0-5][0-9]| [0-9])$ ]]; then
31
- minute=$( echo ${RUN_AT} | egrep -o ' ([0-5][0-9]|[0-9])$' )
32
- hour=$( echo ${RUN_AT} | egrep -o ' ^([01][0-9]|2[0-3]|[0-9])' )
29
+ minute=$( echo ${RUN_AT} | egrep -o ' ([0-5][0-9]|[0-9])$' )
30
+ hour=$( echo ${RUN_AT} | egrep -o ' ^([01][0-9]|2[0-3]|[0-9])' )
33
31
CRON_COMMAND=" ${minute} ${hour} * * * ${PHP_COMMAND} "
34
32
echo -e " [${green} Info${plain} ] 你已指定执行时间,续期任务将在北京时间每天 「${hour} :${minute} 」 执行"
35
- elif [ " $( php /app/run -c=Cron -m=verify --cron_exp=" ${RUN_AT} " ) " -eq 1 ]; then
36
- CRON_COMMAND=" ${RUN_AT} ${PHP_COMMAND} "
37
- echo -e " [${green} Info${plain} ] 你自定义的 Cron 表达式为「${RUN_AT} 」,已通过正则验证"
38
33
else
39
- echo -e " [${red} Error${plain} ] RUN_AT 的值无效"
40
- echo -e " ${yellow} 请输入一个有效的时间指令,其值可以为时分格式,如:11:24,也可以为 Cron 表达式,如:'24 11 * * *',甚至可以不输入,让程序自动生成,推荐采用自动生成的方式,不建议手动指定此环境变量"
41
- exit 1
34
+ php /app/run -c=Cron -m=verify --cron_exp=" ${RUN_AT} "
35
+ if [ $? -eq 0 ]; then
36
+ CRON_COMMAND=" ${RUN_AT} ${PHP_COMMAND} "
37
+ echo -e " [${green} Info${plain} ] 你自定义的 Cron 表达式为「${RUN_AT} 」,已通过正则验证"
38
+ else
39
+ echo -e " [${red} Error${plain} ] RUN_AT 的值无效,你的输入为 ${RUN_AT} "
40
+ echo -e " ${yellow} 请输入一个有效的时间指令,其值可以为时分格式,如:11:24,也可以为 Cron 表达式,如:'24 11 * * *',甚至可以不输入,让程序自动生成,推荐采用自动生成的方式,不建议手动指定此环境变量"
41
+ exit 1
42
+ fi
42
43
fi
43
44
fi
44
45
45
46
# 添加计划任务
46
47
sed -i ' /freenom_cron/' d /etc/crontabs/root
47
- echo -e " ${CRON_COMMAND} " >> /etc/crontabs/root
48
+ echo -e " ${CRON_COMMAND} " >> /etc/crontabs/root
48
49
echo -e " [${green} Info${plain} ] 计划任务:${CRON_COMMAND} "
49
50
50
51
# 启动 Cron
@@ -54,4 +55,5 @@ echo -e "[${green}Info${plain}] 计划任务:${CRON_COMMAND}"
54
55
cp /app/nginx.template.conf /app/nginx.conf
55
56
56
57
# 启动 php-fpm 与 nginx
57
- php-fpm -D -R; nginx -c /app/nginx.conf -g ' daemon off;'
58
+ php-fpm -D -R
59
+ nginx -c /app/nginx.conf -g ' daemon off;'
0 commit comments