openwrt-docker部署lxk0301京东自动签到脚本

openwrt-docker部署lxk0301京东自动签到脚本

orzlee
2021-02-08 / 101 评论 / 12,078 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年05月08日,已超过1046天没有更新,若内容或图片失效,请留言反馈。

OpenWrt_Reboot-755x385.png

前言

最近弄了个软路由,J4105/8G/128G SSD,只是用来科学上网太浪费了,内存经常空闲7个多G,CPU 5%左右。

本来在手机上跑lxk0301大佬的京东签到脚本已经很爽了(有兴趣可以阅读我的文章-QuantumultX-京东签到撸京东豆),最近京东有个疯狂的JOY活动,自动看视频、领金币、合成JOY。脚本一旦启动不会停止,8s执行一次,手机上跑不太合适,可能会比较耗电。本想在服务器上弄个docker,想着软路由性能过剩还是折腾下软路由吧。

开撸

推荐科学上网后再折腾,虽然不是必要。

我是用的是eSir高大全,功能比较多,eSir youtube频道有固件讲解视频,包括一些使用教程等。

eSir高大全已经包含了DockerMan,如果没有可以去 DockerMan github看说明安装,当然也可以不使用DockerMan工具,看个人喜好。本片文章是基于DockerMan工具。

开始之前

默认eSir高大全的Overlay分区大小固定,如果硬盘较大其实很多空间都没有使用,可以看eSir说明以及教程OpenWrt扩容Overlay

eSir推荐docker分区重新分配一个,这样在升级或者恢复出厂设置后不会丢失docker数据,所以在扩容Overlay分区的时候不要把硬盘全部用光,给docker分区多留点。这部分教程可以看eSir-玩转Docker系列视频,第一弹里面有讲到docker分区,视频中使用分区工具diskman,eSir高大全版本在openwrt管理页面 系统 目录下。

配置docker

2021-05-08 LXK0301 jd_docker仓库也被封掉了,最新地址Github jd_docker

2021-02-20 LXK0301 gitee仓库被大量外链访问封掉了,仓库已被禁止访问,返回403。目前已经套用CDN访问。

大佬telegram脚本更新通知频道JD_fruit Script

以下是LXK0301大佬telegram bot最新消息:

云端使用仓库自带的docker。更新一下镜像后,然后可继续更新仓库最新脚本。

openwrt docker在 Docker-容器-点击容器名称-升级容器,旧的容器会在名称后面追加_old,删除带有_old的容器,启动新的就好了。

获取京东cookie方法,推荐使用扫码,可以保存cookies 90天。
环境变量说明总汇:jd_scripts docker 环境变量

  1. 在opt目录下创建一个目录,存放签到脚本目录,使用shell工具或者WinSCP操作
  2. 新建一个docker容器:
    openwrt-docker-jd-1.png
  3. 配置项
    • 容器名称自定义
    • Docker 镜像 lxk0301/jd_scripts
    • 始终拉取镜像 √ (每次启动、重启都会拉取最新镜像)
    • 重启策略 Always
    • 环境变量 JD_COOKIE必须,REPO_URL=https://gitee.com/lxk0301/jd_scripts.git 指定更新源,推荐gitee仓库,GitHub总是有人滥用GitHub Action导致作者仓库被封。gitee仓库不存在此问题,相对较稳定。我是用telegram推送签到信息(教程:Telegram通知BOT配置教程),其他环境变量去看jd_scripts docker 环境变量
    • 挂载 具体看使用什么配置,jd_scripts docker 配置说明中举例了几种配置,一般默认挂载出日志文件就好了,当然也可以不挂载命令格式 第一步创建的目录:/scripts/logs,推荐使用绝对路径
      openwrt-docker-jd-setting.png
  4. 点击提交后会回到第一步界面,勾选刚刚创建的容器,点击启动即可。

互助码

在你创建的并且挂载的日志目录下,jd_get_share_code.logsharecode.log以及其他活动对应的日志中都包含该活动的互助码(如果活动可以互助的话),前两个日志文件会包含多个活动。如果没有想要的活动互助码只能在对应活动脚本日志中找,对应活动脚本(日志文件名与脚本名一致)可以查看脚本列表

手机用户手动跑一遍脚本或者看看是否有脚本日志,一般会在日志或手动跑脚本的时候输出互助码

使用telegram提交互助码, 有两个BOT:

@TuringLabbot
@LvanLamCommitCodeBot

进入BOT点击消息输入框右边的斜杠按钮可以查看所有命令,使用/help查看说明,最好看一下,两个bot提交的互助码活动不一样,一个是长期活动,一个是临时活动。切勿频繁提交。BOT在1、8、16、24号0点会清空数据,0点后重新提交自己的互助码,作者服务器资源有限,互助码有上限(目前好像是5500个)。有兴趣可以折腾下:LXK0301京东签到脚本-自动提交互助码

docker容器相关操作命令

docker exec -it jd_scripts /bin/sh -c 'git -C /scripts pull && node /scripts/jd_bean_change.js' 手动拉取仓库最新脚本并且运行jd_bean_change.js脚本

docker exec -it jd_scripts /bin/sh -c 'env' 查看设置的环境变量

docker exec -it jd_scripts /bin/sh -c 'git pull' 手动更新jd_scripts仓库最新脚本

docker exec -it jd_scripts /bin/sh 仅进入容器命令(进入容器后也可以手动运行脚本: node /scripts/jd_bean_change.js)

rm -rf logs/*.log 删除logs文件夹里面所有的日志文件(这行命令一般是在进入容器后执行)

结语

使用docker可以解放手机了,docker默认会开启jd_crazy_joy_coin.js脚本。这个docker不怎么耗资源,所以低配置软路由也没有问题,我同时跑了3个账号,除了内存上去了几百M,CPU还是老样子。脚本每天23:50会清空日志,每天会自动拉取最新脚本,所有挂上去后除了更新cookie基本上不用管。

diskman没法编辑环境变量,每次都要重建,在Docker-容器-点击你得容器名称-复制/编辑容器-可以复制一份容器配置文件,REPO_URL=https://xxxx 环境变量会丢失,估计是包含特殊符号,如果需要记得加上,补全信息:容器名称,始终拉取镜像,重启策略,修改cookie后删除原容器, 点击提交,操作麻烦了点,但比重新创建一个要简单。

有时候启动会无限重启,查看docker 容器日志会发现脚本没有执行完。

...

stderr: + expr 16 '%' 8
stderr: + remainder_h=0

可能是脚本BUG,当前时间小时数取余如果为0就会发生此问题,修改系统时间没有用,要修改容器时间才行,还是等待下一个小时在启动吧。

2
取消
扫码打赏
支付金额随意哦!

评论 (101)

取消
  1. 头像
    June
    iPhone · Safari

    现在是不是用不了了?重建也跑不起来了,求救啊博主

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ June

      作者已弃坑!

      回复
  2. 头像
    otty100
    Windows 7 · Google Chrome

    博主,现在lxk0301大佬的地址访问不了了,能否提供一个可访问的地址或者提供个可用的镜像脚本?刚想学习就碰上拦路虎了。希望帮帮忙,感谢!

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ otty100

      https://t.me/jdfruit 作者的tg频道里面有脚本可以下载!

      回复
      1. 头像
        otty100
        Windows 7 · Google Chrome
        @ orzlee

        感谢回复,加了TG频道也下了一个脚本文件(但是不会用,小白一个,目前接触和学习的就是利用op的docker拉取镜像文件),能稍微指点一下吗或者甩个学习连接我自己看去也行。感谢!

        回复
        1. 头像
          orzlee 作者
          Linux · Google Chrome
          @ otty100

          作者已经弃坑了,资料只能自己搜集了哦!

          回复
      2. 头像
        sozokk
        Windows 10 · Google Chrome
        @ orzlee

        脚本怎么用呢

        回复
  3. 头像
    往事
    iPhone · Google Chrome

    我用的是r4s openwrt 固件中自带的docker 拉取的是青龙镜像 创建容器输入的 命令是 docker run -dit \
    -v /$PWD/ql/config:/ql/config \
    -v /$PWD/ql/log:/ql/log \
    -v /$PWD/ql/db:/ql/db \
    --net host \
    --name q1 \
    --hostname q1 \
    --restart always \
    whyour/qinglong:latest
    输入以后 镜像可以拉取出来 但提示下面这个 容器 创建不出来
    Container:Createjd. code:00 create SPWD/C1/1og:TŞED/G1/iog includes invalid characters for a local volum e name only [2ZA 20=9/ raZA Z0-9-]" axe alioted. IẾ Vou intended to pass a host directory, use absolute pat

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ 往事

      有无效字符,估计是$PWD,这应该是个变量,替换下吧!

      回复
      1. 头像
        往事
        iPhone · Google Chrome
        @ orzlee

        好的 主要是也不知道替换成什么 我再查一查 谢了

        回复
  4. 头像
    往事
    iPhone · Google Chrome

    大佬,我镜像 可以拉取出来 但是创建容器 老是提示 错误 有啥命令是直接创建出来的

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ 往事

      什么错误?

      回复
  5. 头像
    lol
    Android · Google Chrome

    怎麼添加第二個帳號

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ lol

      创建多个容器

      回复
  6. 头像
    sam
    iPhone · Safari

    Esir的docker都看了,对于我来起点还是高点,有电报群吗,想进去跟大家学学

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ sam

      没有任何群

      回复
  7. 头像
    sam
    Windows 10 · Google Chrome

    请问大佬,有视频教程吗,我是小小白,已经折腾好几天,实在是没办法了

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ sam

      我没有做视频!YouTube上esir好像做了这个视频,你可以找找看!

      回复
  8. 头像
    ahcy
    Windows 10 · Google Chrome

    大佬,请教个问题,lxk的镜像支持映射其他作者的脚本或者脚本库吗?如果支持的话,知不知道怎么操作的?感谢!!

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ ahcy

      不太清楚!

      回复
      1. 头像
        ahcy
        Windows 10 · Google Chrome
        @ orzlee

        好吧,谢啦

        回复
  9. 头像
    June
    MacOS · Safari

    大佬你好,在jd_scripts文件夹下放入docker-compose.yml和my_crontab_list.sh,并创建一个logs文件夹,然后启动容器,其他步骤按照您的教程,这样对吗?
    另外我的tg bot收到一条通知“升级容器node版本(v14.5.0)!”,但在软件源里只有8.0的node版本,我在官网上找不到ipk的包,只有.gz的包,这个有其他的升级办法吗?
    感谢您的查阅!:)

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ June

      不用管node啊,那是容器里面的。yml文件openwrt也不用手动创建,如果你不用插件那还是需要的!

      回复
      1. 头像
        June
        iPhone · Safari
        @ orzlee

        谢谢回复,您的文章讲的很详细,感觉明朗了许多!

        回复
  10. 头像
    Jim
    Windows 10 · Google Chrome

    大佬,博客里面没有相关内容哈,指导一下嘛

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      你在这篇文章里面搜:添加crontab定时任务

      回复
  11. 头像
    Jim
    Windows 10 · Google Chrome

    大佬,应该是没有添加到crontab,麻烦指导一下把任务添加到crontab

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      博客里面应该有写吧?

      回复
  12. 头像
    Jim
    Windows 10 · Google Chrome

    手动可以运行程序签到领豆,挂机不可以,不知道错在哪里了

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      加到crontab了吗?

      回复
  13. 头像
    Jim
    Windows 10 · Google Chrome

    大佬,如何让定时任务自动执行,现在手动可以执行任务,麻烦指导一下

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      定时任务就是自动执行啊!

      回复
  14. 头像
    Feng
    Windows 10 · Google Chrome

    求助,现在OP里的docker是不是拉取不了(Docker 镜像 lxk0301/jd_scripts),怎么弄都是报错,有什么解决办法吗?

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Feng

      什么错?

      回复
      1. 头像
        Feng
        Windows 10 · Google Chrome
        @ orzlee

        之前一直拉取报错,后改挂群晖的docker上了,刚试了一下,发现OP里的docker又能拉取了

        回复
  15. 头像
    Jim
    Windows 10 · Google Chrome

    定义定时任务合并处理用到的文件路径...
    默认文件定时任务文件路径为 /scripts/docker/crontab_list.sh
    合并后定时任务文件路径为 /scripts/docker/merged_list_file.sh
    第1步将默认定时任务列表添加到并后定时任务文件...
    第2步判断是否存在自定义任务任务列表并追加...
    当前只使用了默认定时任务文件 crontab_list.sh ...
    第3步判断是否配置了随机延迟参数...
    已设置随机延迟为 30 , 设置延迟任务中...
    第4步判断是否配置自定义shell执行脚本...
    未配置自定shell脚本文件,跳过执行。
    第5步删除不运行的脚本任务...
    第6步设定下次运行docker_entrypoint.sh时间...
    删除原有docker_entrypoint.sh任务
    设定 docker_entrypoint.sh cron为:
    58 21 * docker_entrypoint.sh >> /scripts/logs/default_task.log 2>&1
    第7步 自动助力
    第8步增加 |ts 任务日志输出时间戳...
    第9步执行proc_file.sh脚本任务...
    处理jd_crazy_joy_coin任务。。。
    默认启用jd_crazy_joy_coin杀掉jd_crazy_joy_coin任务,并重启
    默认jd_crazy_joy_coin重启完成
    第10步加载最新的定时任务文件...
    bot交互与spnode 前置条件成立,替换任务列表的node指令为spnode
    第11步将仓库的docker_entrypoint.sh脚本更新至系统/usr/local/bin/docker_entrypoint.sh内...
    发送通知

    领不了京豆呢,是哪里问题呀

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      要看脚本日志,哪一个脚本领不了豆。这种问题最好去作者仓库反馈!

      回复
  16. 头像
    Jim
    Windows 10 · Google Chrome

    Orzlee大佬,openwrt 无法安装 python 3.8.8,麻烦指导一下呀

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      有些版本是不好装,应该是openwrt环境问题!

      回复
  17. 头像
    Jim
    Windows 10 · Google Chrome

    大佬,Error: No such container: jd_scripts,这个是什么问题呢,这个文件要放在哪里呢,在我的目录下有/opt/ jd_scripts,怎么处理哈。

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      哪一步出现的错误?

      回复
  18. 头像
    Jim
    Windows 10 · Google Chrome

    REPO_URL=https://gitee.com/lxk0301/jd_scripts.git 大佬,这个填在哪里呢,麻烦指导一下

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ Jim

      .yaml文件或者文章里面的图片!

      回复
  19. 头像
    la
    Windows 10 · Google Chrome

    日志全是

    stdout: 设定远程仓库地址...
    stdout: HEAD is now at fd90ed1 fix
    stdout: git pull拉取最新代码...
    stderr: ssh: connect to host gitee.com port 22: Operation timed out
    stderr: fatal: Could not read from remote repository.
    stderr:
    stderr: Please make sure you have the correct access rights
    stderr: and the repository exists.
    stdout: 设定远程仓库地址...
    stdout: HEAD is now at fd90ed1 fix
    stdout: git pull拉取最新代码...
    stderr: ssh: connect to host gitee.com port 22: Operation timed out
    stderr: fatal: Could not read from remote repository.
    stderr:
    stderr: Please make sure you have the correct access rights
    stderr: and the repository exists.
    stdout: 设定远程仓库地址...
    stdout: HEAD is now at fd90ed1 fix
    stdout: git pull拉取最新代码...
    stderr: ssh: connect to host gitee.com port 22: Operation timed out
    stderr: fatal: Could not read from remote repository.
    stderr:

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ la

      估计作者删除仓库密钥了,拉取不了了!

      回复
  20. 头像
    la
    Windows 10 · Google Chrome

    控制台全部出现这个提示?麻烦帮忙解决下

    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined
    "Invalid character in header content [\"cookie\"]"
    京东资产变动通知 API请求失败,请检查网路重试
    第1页: undefined

    回复
    1. 头像
      orzlee 作者
      Linux · Google Chrome
      @ la

      你这个是脚本问题,要去作者仓库反馈!

      回复