随机时间运行default_task.sh

This commit is contained in:
AboutCXJ
2021-01-29 16:34:22 +08:00
committed by Gitee
parent 5fa86ae809
commit 9acca83eaf

View File

@ -43,19 +43,11 @@ else
echo "当前只使用了默认定时任务文件 $DEFAULT_LIST_FILE ..." echo "当前只使用了默认定时任务文件 $DEFAULT_LIST_FILE ..."
fi fi
##可能存在旧版crontab里面有default_task.sh任务有就直接删除否则可能会任务重复
sed -i "/default_task.sh/d" $mergedListFile
echo "第3步判断是否配置了默认脚本更新任务..."
if [ $(grep -c "docker_entrypoint.sh" $mergedListFile) -eq '0' ]; then
echo "合并后的定时任务文件,未包含必须的默认定时任务,增加默认定时任务..."
echo -e >>$mergedListFile
echo "52 */1 * * * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1" >>$mergedListFile
else
echo "已配置默认脚本更新任务。"
fi
echo "第4步判断是否配置了随即延迟参数..."
echo "第3步判断是否配置了随即延迟参数..."
if [ $RANDOM_DELAY_MAX ]; then if [ $RANDOM_DELAY_MAX ]; then
if [ $RANDOM_DELAY_MAX -ge 1 ]; then if [ $RANDOM_DELAY_MAX -ge 1 ]; then
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中..." echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中..."
@ -65,7 +57,7 @@ else
echo "未配置随即延迟对应的环境变量,故不设置延迟任务..." echo "未配置随即延迟对应的环境变量,故不设置延迟任务..."
fi fi
echo "第5步判断是否配置自定义shell执行脚本..." echo "第4步判断是否配置自定义shell执行脚本..."
if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then
echo "未配置自定shell脚本文件跳过执行。" echo "未配置自定shell脚本文件跳过执行。"
else else
@ -90,7 +82,7 @@ fi
echo "第6步删除不运行的脚本任务..." echo "第5步删除不运行的脚本任务..."
if [ $DO_NOT_RUN_SCRIPTS ]; then if [ $DO_NOT_RUN_SCRIPTS ]; then
echo "您配置了不运行的脚本:$DO_NOT_RUN_SCRIPTS" echo "您配置了不运行的脚本:$DO_NOT_RUN_SCRIPTS"
arr=${DO_NOT_RUN_SCRIPTS//&/ } arr=${DO_NOT_RUN_SCRIPTS//&/ }
@ -101,6 +93,34 @@ if [ $DO_NOT_RUN_SCRIPTS ]; then
fi fi
echo "第6步设定下次运行docker_entrypoint.sh时间..."
echo "删除原有docker_entrypoint.sh任务"
sed -ie '/'docker_entrypoint.sh'/d' ${mergedListFile}
current_min=$(date +%M)
echo "当前分钟:${current_min}"
#当前分钟大于1则随机一个小于当前分钟的否则为59
if [ $current_min -ge 1 ]; then
random_min=$(($RANDOM % $current_min))
else
random_min=59
fi
echo "下次运行的分钟:${random_min}"
#小时间隔1-3随机
random_h=$(($RANDOM % 3+1))
echo "小时间隔调整为${random_h}"
echo -e >>$mergedListFile
echo "#必须要的默认定时任务请勿删除" >> ${mergedListFile}
echo ""${random_min}" */"${random_h}" * * * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1" >> ${mergedListFile}
echo "第7步增加 |ts 任务日志输出时间戳..." echo "第7步增加 |ts 任务日志输出时间戳..."
sed -i "/\( ts\| |ts\|| ts\)/!s/>>/\|ts >>/g" $mergedListFile sed -i "/\( ts\| |ts\|| ts\)/!s/>>/\|ts >>/g" $mergedListFile