Merge pull request #516 from iouAkira/master

增加自定义shell脚本
This commit is contained in:
lxk0301
2021-01-03 00:09:14 +08:00
committed by GitHub
2 changed files with 42 additions and 7 deletions

View File

@ -1,4 +1,24 @@
### Usage
```diff
+ 2021-01-03更新 增加 CUSTOM_SHELL_FILE 参数配置执行自定义shell脚本
+ 例1:配置远程shell脚本, 我自己写了一个shell脚本https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh 内容很简单下载惊喜农场并添加定时任务
+ CUSTOM_SHELL_FILE=https://raw.githubusercontent.com/iouAkira/someDockerfile/master/jd_scripts/shell_script_mod.sh
+
+ 例2:配置docker挂载本地自定义shell脚本,/scripts/docker/shell_script_mod.sh 为你在docker-compose.yml里面挂载到容器里面绝对路径
+ CUSTOM_SHELL_FILE=/scripts/docker/shell_script_mod.sh
+
+ tip如果使用远程自定义请保证网络畅通或者选择合适的国内仓库例如有部分人的容器里面就下载不到github的raw文件那就可以把自己的自定义shell写在gitee上或者换本地挂载
+ 如果是 docker 挂载本地,请保重文件挂载进去了,并且配置的是绝对路径。
+ 自定义 shell 脚本里面如果要加 crontab 任务请使用 echo 追加到 /scripts/docker/merged_list_file.sh 里面否者不生效
+ 注⚠️ 建议无shell能力的不要轻易使用当然你可以找别人写好适配了这个docker镜像的脚本直接远程配置
+ 上面写了这么多如果还看不懂,不建议使用该变量功能。
_____
! ⚠2020-12-11更新镜像启动方式虽然兼容旧版的运行启动方式但是强烈建议更新镜像和配置后使用
! 更新后`command:`指令配置不再需要
! 更新后可以使用自定义任务文件追加在默任务文件之后,比以前的完全覆盖多一个选择
! - 新的自定两个环境变量为 `CUSTOM_LIST_MERGE_TYPE`:自定文件的生效方式可选值为`append``overwrite`默认为`append` ; `CUSTOM_LIST_FILE`: 自定义文件的名字
! 更新镜像增减镜像更新通知,以后镜像如果更新之后,会通知用户更新
```
> 推荐使用`docker-compose`所以这里只介绍`docker-compose`使用方式
- `docker-compose` 安装群晖nas docker自带安装了docker-compose
@ -21,12 +41,6 @@ pip install docker-compose
### 如果需要使用 docker 多个账户独立并发执行定时任务,[参考这里](https://github.com/iouAkira/scripts/blob/patch-1/docker/docker%E5%A4%9A%E8%B4%A6%E6%88%B7%E4%BD%BF%E7%94%A8%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md#%E4%BD%BF%E7%94%A8%E6%AD%A4%E6%96%B9%E5%BC%8F%E8%AF%B7%E5%85%88%E7%90%86%E8%A7%A3%E5%AD%A6%E4%BC%9A%E4%BD%BF%E7%94%A8docker%E5%8A%9E%E6%B3%95%E4%B8%80%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F)
2020-12-11更新镜像启动方式虽然兼容旧版的运行启动方式但是强烈建议更新镜像和配置后使用
- 更新后`command:`指令配置不再需要
- 更新后可以使用自定义任务文件追加在默任务文件之后,比以前的完全覆盖多一个选择
- - 新的自定两个环境变量为 `CUSTOM_LIST_MERGE_TYPE`:自定文件的生效方式可选值为`append``overwrite`默认为`append` ; `CUSTOM_LIST_FILE`: 自定义文件的名字
- 更新镜像增减镜像更新通知,以后镜像如果更新之后,会通知用户更新
> 注⚠️:前提先理解学会使用这下面的教程
### 创建一个目录`jd_scripts`用于存放备份配置等数据迁移重装的时候只需要备份整个jd_scripts目录即可
需要新建的目录文件结构参考如下:

View File

@ -107,7 +107,7 @@ if [ $(grep -c "default_task.sh" $mergedListFile) -eq '0' ]; then
echo "52 */1 * * * sh /scripts/docker/default_task.sh |ts >> /scripts/logs/default_task.log 2>&1" >>$mergedListFile
fi
if [ $RANDOM_DELAY_MAX ];then
if [ $RANDOM_DELAY_MAX ]; then
if [ $RANDOM_DELAY_MAX -ge 1 ]; then
echo "已设置随机延迟为 $RANDOM_DELAY_MAX , 设置延迟任务中... "
sed -i "/\(jd_bean_sign.js\|jd_blueCoin.js\|jd_joy_reward.js\|jd_joy_steal.js\|jd_joy_feedPets.js\)/!s/node/sleep \$((RANDOM % \$RANDOM_DELAY_MAX)); node/g" $mergedListFile
@ -116,6 +116,27 @@ else
echo "未配置随即延迟对应的环境变量,故不设置延迟任务"
fi
##增加自定义shell脚本
if [ 0"$CUSTOM_SHELL_FILE" = "0" ]; then
echo "未配置自定shell脚本文件跳过执行。"
else
if expr "$CUSTOM_SHELL_FILE" : 'http.*' &>/dev/null; then
echo "自定义shell脚本为远程脚本开始下在自定义远程脚本。"
wget -O /scripts/docker/shell_script_mod.sh $CUSTOM_SHELL_FILE
echo "下载完成,开始执行..."
sh -x /scripts/docker/shell_script_mod.sh
echo "自定义远程shell脚本下载并执行结束。"
else
if [ !$CUSTOM_SHELL_FILE ]; then
echo "自定义shell脚本为docker挂载脚本文件但是指定挂载文件不存在跳过执行。"
else
echo "docker挂载的自定shell脚本开始执行..."
sh -x $CUSTOM_SHELL_FILE
echo "docker挂载的自定shell脚本执行结束。"
fi
fi
fi
echo "加载最新的定时任务文件..."
crontab $mergedListFile