2020-12-11 13:56:01 +08:00
|
|
|
|
#!/bin/sh
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "定义定时任务合并处理用到的文件路径..."
|
|
|
|
|
|
defaultListFile="/scripts/docker/$DEFAULT_LIST_FILE"
|
|
|
|
|
|
echo "默认文件定时任务文件路径为 ${defaultListFile}"
|
2020-12-11 13:56:01 +08:00
|
|
|
|
mergedListFile="/scripts/docker/merged_list_file.sh"
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "合并后定时任务文件路径为 ${mergedListFile}"
|
2020-12-11 13:56:01 +08:00
|
|
|
|
|
2021-01-18 14:35:06 +08:00
|
|
|
|
echo "第1步将默认定时任务列表添加到并后定时任务文件..."
|
2021-01-16 21:39:54 +08:00
|
|
|
|
cat $defaultListFile >$mergedListFile
|
2020-12-11 13:56:01 +08:00
|
|
|
|
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "第2步判断是否存在自定义任务任务列表并追加..."
|
2020-12-11 13:56:01 +08:00
|
|
|
|
if [ $CUSTOM_LIST_FILE ]; then
|
|
|
|
|
|
echo "您配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
|
2021-01-22 11:29:36 +08:00
|
|
|
|
# 无论远程还是本地挂载, 均复制到 $customListFile
|
|
|
|
|
|
customListFile="/scripts/docker/custom_list_file.sh"
|
|
|
|
|
|
echo "自定义定时任务文件临时工作路径为 ${customListFile}"
|
|
|
|
|
|
if expr "$CUSTOM_LIST_FILE" : 'http.*' &>/dev/null; then
|
|
|
|
|
|
echo "自定义任务文件为远程脚本,开始下载自定义远程任务。"
|
|
|
|
|
|
wget -O $customListFile $CUSTOM_LIST_FILE
|
|
|
|
|
|
echo "下载完成..."
|
|
|
|
|
|
elif [ -f /scripts/docker/$CUSTOM_LIST_FILE ]; then
|
|
|
|
|
|
echo "自定义任务文件为本地挂载。"
|
|
|
|
|
|
cp /scripts/docker/$CUSTOM_LIST_FILE $customListFile
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2020-12-11 13:56:01 +08:00
|
|
|
|
if [ -f "$customListFile" ]; then
|
|
|
|
|
|
if [ $CUSTOM_LIST_MERGE_TYPE == "append" ]; then
|
|
|
|
|
|
echo "合并默认定时任务文件:$DEFAULT_LIST_FILE 和 自定义定时任务文件:$CUSTOM_LIST_FILE"
|
|
|
|
|
|
echo -e "" >>$mergedListFile
|
|
|
|
|
|
cat $customListFile >>$mergedListFile
|
|
|
|
|
|
elif [ $CUSTOM_LIST_MERGE_TYPE == "overwrite" ]; then
|
|
|
|
|
|
echo "配置了自定义任务文件:$CUSTOM_LIST_FILE,自定义任务类型为:$CUSTOM_LIST_MERGE_TYPE..."
|
2021-01-16 21:39:54 +08:00
|
|
|
|
cat $customListFile >$mergedListFile
|
2020-12-11 13:56:01 +08:00
|
|
|
|
else
|
|
|
|
|
|
echo "配置配置了错误的自定义定时任务类型:$CUSTOM_LIST_MERGE_TYPE,自定义任务类型为只能为append或者overwrite..."
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "配置的自定义任务文件:$CUSTOM_LIST_FILE未找到,使用默认配置$DEFAULT_LIST_FILE..."
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "当前只使用了默认定时任务文件 $DEFAULT_LIST_FILE ..."
|
2020-12-11 13:56:01 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
2020-12-11 14:31:04 +08:00
|
|
|
|
|
2021-01-29 16:34:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "第3步判断是否配置了随机延迟参数..."
|
2021-01-02 23:27:27 +08:00
|
|
|
|
if [ $RANDOM_DELAY_MAX ]; then
|
2020-12-23 11:06:19 +08:00
|
|
|
|
if [ $RANDOM_DELAY_MAX -ge 1 ]; then
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中..."
|
2021-01-10 13:26:18 +08:00
|
|
|
|
sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_joy_reward.js\|jd_joy_steal.js\|jd_joy_feedPets.js\|jd_car_exchange.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $mergedListFile
|
2020-12-23 11:06:19 +08:00
|
|
|
|
fi
|
|
|
|
|
|
else
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "未配置随机延迟对应的环境变量,故不设置延迟任务..."
|
2020-12-18 15:07:41 +08:00
|
|
|
|
fi
|
|
|
|
|
|
|
2021-01-29 16:34:22 +08:00
|
|
|
|
echo "第4步判断是否配置自定义shell执行脚本..."
|
2021-01-02 23:27:27 +08:00
|
|
|
|
if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then
|
|
|
|
|
|
echo "未配置自定shell脚本文件,跳过执行。"
|
|
|
|
|
|
else
|
|
|
|
|
|
if expr "$CUSTOM_SHELL_FILE" : 'http.*' &>/dev/null; then
|
2021-01-22 11:29:36 +08:00
|
|
|
|
echo "自定义shell脚本为远程脚本,开始下载自定义远程脚本。"
|
2021-01-02 23:27:27 +08:00
|
|
|
|
wget -O /scripts/docker/shell_script_mod.sh $CUSTOM_SHELL_FILE
|
|
|
|
|
|
echo "下载完成,开始执行..."
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "#远程自定义shell脚本追加定时任务" >>$mergedListFile
|
2021-01-02 23:27:27 +08:00
|
|
|
|
sh -x /scripts/docker/shell_script_mod.sh
|
|
|
|
|
|
echo "自定义远程shell脚本下载并执行结束。"
|
|
|
|
|
|
else
|
2021-01-09 13:13:12 +08:00
|
|
|
|
if [ ! -f $CUSTOM_SHELL_FILE ]; then
|
2021-01-02 23:27:27 +08:00
|
|
|
|
echo "自定义shell脚本为docker挂载脚本文件,但是指定挂载文件不存在,跳过执行。"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "docker挂载的自定shell脚本,开始执行..."
|
2021-01-16 21:39:54 +08:00
|
|
|
|
echo "#docker挂载自定义shell脚本追加定时任务" >>$mergedListFile
|
2021-01-02 23:27:27 +08:00
|
|
|
|
sh -x $CUSTOM_SHELL_FILE
|
|
|
|
|
|
echo "docker挂载的自定shell脚本,执行结束。"
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2021-01-21 10:17:05 +08:00
|
|
|
|
|
|
|
|
|
|
|
2021-01-29 16:34:22 +08:00
|
|
|
|
echo "第5步删除不运行的脚本任务..."
|
2021-01-21 10:17:05 +08:00
|
|
|
|
if [ $DO_NOT_RUN_SCRIPTS ]; then
|
|
|
|
|
|
echo "您配置了不运行的脚本:$DO_NOT_RUN_SCRIPTS"
|
|
|
|
|
|
arr=${DO_NOT_RUN_SCRIPTS//&/ }
|
|
|
|
|
|
for item in $arr; do
|
2021-01-22 09:30:01 +08:00
|
|
|
|
sed -ie '/'"${item}"'/d' ${mergedListFile}
|
2021-01-21 10:17:05 +08:00
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-01-29 16:34:22 +08:00
|
|
|
|
echo "第6步设定下次运行docker_entrypoint.sh时间..."
|
|
|
|
|
|
echo "删除原有docker_entrypoint.sh任务"
|
|
|
|
|
|
sed -ie '/'docker_entrypoint.sh'/d' ${mergedListFile}
|
|
|
|
|
|
|
2021-02-21 13:58:27 +08:00
|
|
|
|
# 12:00前生成12:00后的cron,12:00后生成第二天12:00前的cron,一天只更新两次代码
|
|
|
|
|
|
if [ $(date +%-H) -lt 12 ]; then
|
|
|
|
|
|
random_h=$(($RANDOM % 12 + 12))
|
2021-01-29 16:34:22 +08:00
|
|
|
|
else
|
2021-02-21 13:58:27 +08:00
|
|
|
|
random_h=$(($RANDOM % 12))
|
2021-01-29 16:34:22 +08:00
|
|
|
|
fi
|
2021-02-21 13:58:27 +08:00
|
|
|
|
random_m=$(($RANDOM % 60))
|
2021-01-29 16:34:22 +08:00
|
|
|
|
|
2021-02-04 20:03:22 +08:00
|
|
|
|
echo "设定 docker_entrypoint.sh cron为:"
|
2021-02-21 14:01:32 +08:00
|
|
|
|
echo -e "\n# 必须要的默认定时任务请勿删除" >> $mergedListFile
|
2021-02-21 13:58:27 +08:00
|
|
|
|
echo -e "${random_m} ${random_h} * * * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1" | tee -a $mergedListFile
|
2021-01-29 16:34:22 +08:00
|
|
|
|
|
2021-01-21 10:17:05 +08:00
|
|
|
|
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "第7步 自动助力"
|
|
|
|
|
|
if [ $ENABLE_AUTO_HELP = "true" ]; then
|
|
|
|
|
|
echo "开启自动助力"
|
|
|
|
|
|
|
|
|
|
|
|
#在所有脚本执行前,先执行助力码导出
|
2021-03-10 18:12:30 +08:00
|
|
|
|
sed -i 's/node/ . \/scripts\/docker\/auto_help.sh export >> \/scripts\/logs\/auto_help_export.log \&\& node /g' ${mergedListFile}
|
2021-03-10 10:10:05 +08:00
|
|
|
|
else
|
|
|
|
|
|
echo "未开启自动助力"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "第8步增加 |ts 任务日志输出时间戳..."
|
2021-01-16 21:39:54 +08:00
|
|
|
|
sed -i "/\( ts\| |ts\|| ts\)/!s/>>/\|ts >>/g" $mergedListFile
|
|
|
|
|
|
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "第9步执行proc_file.sh脚本任务..."
|
2021-01-16 22:43:41 +08:00
|
|
|
|
sh -x /scripts/docker/proc_file.sh
|
2021-01-16 21:39:54 +08:00
|
|
|
|
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "第10步加载最新的定时任务文件..."
|
2020-12-11 13:56:01 +08:00
|
|
|
|
crontab $mergedListFile
|
2020-12-22 23:22:41 +08:00
|
|
|
|
|
2021-03-10 10:10:05 +08:00
|
|
|
|
echo "第11步将仓库的docker_entrypoint.sh脚本更新至系统/usr/local/bin/docker_entrypoint.sh内..."
|
2021-01-16 22:30:22 +08:00
|
|
|
|
cat /scripts/docker/docker_entrypoint.sh >/usr/local/bin/docker_entrypoint.sh
|
2021-02-23 12:05:25 +08:00
|
|
|
|
|
|
|
|
|
|
echo "发送通知"
|
2021-03-10 12:18:07 +08:00
|
|
|
|
export NOTIFY_CONTENT="2021-03-10更新 新版docker单容器多账号自动互助.开启方式:docker-compose.yml 中添加环境变量 - ENABLE_AUTO_HELP=true,详见Readme.md"
|
2021-02-23 12:05:25 +08:00
|
|
|
|
cd /scripts/docker
|
|
|
|
|
|
node notify_docker_user.js
|