前言
最近弄了个软路由,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 环境变量
- 在opt目录下创建一个目录,存放签到脚本目录,使用shell工具或者WinSCP操作
- 新建一个docker容器:
- 配置项
- 容器名称自定义
- 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
,推荐使用绝对路径
- 点击提交后会回到第一步界面,勾选刚刚创建的容器,点击启动即可。
互助码
在你创建的并且挂载的日志目录下,jd_get_share_code.log
、sharecode.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就会发生此问题,修改系统时间没有用,要修改容器时间才行,还是等待下一个小时在启动吧。
现在是不是用不了了?重建也跑不起来了,求救啊博主
作者已弃坑!
博主,现在lxk0301大佬的地址访问不了了,能否提供一个可访问的地址或者提供个可用的镜像脚本?刚想学习就碰上拦路虎了。希望帮帮忙,感谢!
https://t.me/jdfruit 作者的tg频道里面有脚本可以下载!
感谢回复,加了TG频道也下了一个脚本文件(但是不会用,小白一个,目前接触和学习的就是利用op的docker拉取镜像文件),能稍微指点一下吗或者甩个学习连接我自己看去也行。感谢!
作者已经弃坑了,资料只能自己搜集了哦!
脚本怎么用呢
我用的是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
有无效字符,估计是$PWD,这应该是个变量,替换下吧!
好的 主要是也不知道替换成什么 我再查一查 谢了
大佬,我镜像 可以拉取出来 但是创建容器 老是提示 错误 有啥命令是直接创建出来的
什么错误?
怎麼添加第二個帳號
创建多个容器
Esir的docker都看了,对于我来起点还是高点,有电报群吗,想进去跟大家学学
没有任何群
请问大佬,有视频教程吗,我是小小白,已经折腾好几天,实在是没办法了
我没有做视频!YouTube上esir好像做了这个视频,你可以找找看!
大佬,请教个问题,lxk的镜像支持映射其他作者的脚本或者脚本库吗?如果支持的话,知不知道怎么操作的?感谢!!
不太清楚!
好吧,谢啦
大佬你好,在jd_scripts文件夹下放入docker-compose.yml和my_crontab_list.sh,并创建一个logs文件夹,然后启动容器,其他步骤按照您的教程,这样对吗?
另外我的tg bot收到一条通知“升级容器node版本(v14.5.0)!”,但在软件源里只有8.0的node版本,我在官网上找不到ipk的包,只有.gz的包,这个有其他的升级办法吗?
感谢您的查阅!:)
不用管node啊,那是容器里面的。yml文件openwrt也不用手动创建,如果你不用插件那还是需要的!
谢谢回复,您的文章讲的很详细,感觉明朗了许多!
大佬,博客里面没有相关内容哈,指导一下嘛
你在这篇文章里面搜:添加crontab定时任务
大佬,应该是没有添加到crontab,麻烦指导一下把任务添加到crontab
博客里面应该有写吧?
手动可以运行程序签到领豆,挂机不可以,不知道错在哪里了
加到crontab了吗?
大佬,如何让定时任务自动执行,现在手动可以执行任务,麻烦指导一下
定时任务就是自动执行啊!
求助,现在OP里的docker是不是拉取不了(Docker 镜像 lxk0301/jd_scripts),怎么弄都是报错,有什么解决办法吗?
什么错?
之前一直拉取报错,后改挂群晖的docker上了,刚试了一下,发现OP里的docker又能拉取了
定义定时任务合并处理用到的文件路径...
默认文件定时任务文件路径为 /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内...
发送通知
领不了京豆呢,是哪里问题呀
要看脚本日志,哪一个脚本领不了豆。这种问题最好去作者仓库反馈!
Orzlee大佬,openwrt 无法安装 python 3.8.8,麻烦指导一下呀
有些版本是不好装,应该是openwrt环境问题!
大佬,Error: No such container: jd_scripts,这个是什么问题呢,这个文件要放在哪里呢,在我的目录下有/opt/ jd_scripts,怎么处理哈。
哪一步出现的错误?
REPO_URL=https://gitee.com/lxk0301/jd_scripts.git 大佬,这个填在哪里呢,麻烦指导一下
.yaml文件或者文章里面的图片!
日志全是
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:
估计作者删除仓库密钥了,拉取不了了!
控制台全部出现这个提示?麻烦帮忙解决下
京东资产变动通知 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
你这个是脚本问题,要去作者仓库反馈!