青龙面板安装-搭建-更新保姆级教程
青龙面板是一套基于 docker 的定时任务执行系统,可以运行一些脚本库,简单来说这东西适合白嫖各种活动,最多的使用场景就是京东每日自动领京豆程序,每天大概可以领取60~100+京豆。因为脚本要定时运行,所以最好安装在服务器上,1核1G的服务器完全够用,系统方面选择 CentOS 7.5 左右就行,接下来的教程都基于上述条件进行搭建的。
1、安装 Docker,具体安装教程查看下面文章
Centos/Ubuntu Docker安装教程及常用命令,使用Alinux3搭建部署Docker报错
Centos Docker安装教程,使用Alinux3搭建部署docker报错,repo 'docker-ce-stable' 下载元数据失败…
2、拉取青龙镜像
docker pull whyour/qinglong:2.15.20
3、启动青龙镜像
docker run -dit \
-v $PWD/ql/data:/ql/data \
-p 5700:5700 \
-e ENABLE_HANGUP=true \
-e ENABLE_WEB_PANEL=true \
--name qinglong \
--hostname qinglong \
--privileged=true \
--restart always \
whyour/qinglong:2.15.20
其中 -p 5700:5700 \ 是访问青龙面板的端口号,记得在服务器防火墙设置中放行5700端口
4、查看运行状态
docker ps
5、查看账号及密码
docker exec -it qinglong cat /ql/data/config/auth.json
6、初始化青龙面板(跳过通知方式)
http://你的服务器IP:5700
7、安装常用依赖
有些脚本运行需要依赖,接下来介绍依赖的安装方法:首先点击新建依赖,把刚才对应的依赖放进去,选择自动拆分。点击确定即可。另外两种依赖的安装方法相同。
安装失败常见错误
#Nodejs依赖安装失败请执行:
pnpm install -g
Nodejs
qs
dayjs
png-js
@types/node
require
typescript
crypto-js
prettytable
dotenv
jsdom
jsdom -g
date-fns
tough-cookie
tslib
ws@7.4.3
ts-md5
jieba
fs
form-data
json5
global-agent
js-base64
axios
yml2213-utils
moment
node-fetch
ds
node-rsa
node-jsencrypt
Python3
requests
canvas
ping3
jieba
pycryptodome
PyExecJS
redis
aiohttp
Linux
libc-dev
python3-dev
gcc
g++
libffi-dev
bizCode
bizMsg
lxml
8、青龙面板常用命令
#更新青龙
docker exec -it qinglong ql update
#更新青龙并编译
docker exec -it qinglong ql restart
#拉取自定义仓库
docker exec -it qinglong ql repo https://ghproxy.com/https://github.com/whyour/hundun.git "quanx" "tokens|caiyun|didi|donate|fold|Env"
#拉取单个脚本
docker exec -it qinglong ql raw https://ghproxy.com/https://raw.githubusercontent.com/moposmall/Script/main/Me/jx_cfd.js
#删除7天前的所有日志
docker exec -it qinglong ql rmlog 7
#青龙面板服务异常自助检查,缺啥会自己安装
docker exec -it qinglong /bin/bash ql check
#重启面板,一般容器名都是ql或qinglong
docker restart qinglong
#两个都不行的,跑下边查看容器名
docker ps -a
#启动bot
docker exec -it qinglong ql bot
#导出互助码
docker exec -it qinglong ql code
#通知测试
docker exec -it qinglong notify test test
#立即执行脚本
docker exec -it qinglong task test.js now
#并行执行脚本
docker exec -it qinglong task test.js conc
9、修改青龙面板端口号
sudo service docker stop #停止docker
sudo docker ps -a #查看容器ID
sudo nano /var/lib/docker/containers/青龙容器的id/hostconfig.json
#进入编辑页面后,将"HostPort":“5700"改成"HostPort”:“xxxx”,前面的5700/tcp别动。
sudo systemctl restart docker #重启docker
10、卸载重装教程
#查看容器
docker ps
#停止容器
docker stop 对应的ID
#删除容器
docker rm 对应的ID
#查询还在运行的服务,看看还有没有5700和5701端口发服务器
netstat -ntpl
#如果有,停止任务
kill -9 PID(每个任务对应的PID)
11、常用task任务
# 依次执行,如果设置了随机延迟,将随机延迟一定秒数
task
# 依次执行,无论是否设置了随机延迟,均立即运行,前台会输出日,同时记录在日志文件中
task now
# 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
task conc (可选的)
# 指定账号执行,无论是否设置了随机延迟,均立即运行
task desi
# 设置任务超时时间
task -m
# 实时打印任务日志,创建定时任务时,不用携带此参数
task -l
参数说明
- file_url: 脚本地址
- repo_url: 仓库地址
- whitelist: 拉取仓库时的白名单,即就是需要拉取的脚本的路径包含的字符串,多个竖线分割
- blacklist: 拉取仓库时的黑名单,即就是需要拉取的脚本的路径不包含的字符串,多个竖线分割
- dependence: 拉取仓库需要的依赖文件,会直接从仓库拷贝到scripts下的仓库目录,不受黑名单影响,多个竖线分割
- extensions: 拉取仓库的文件后缀,多个竖线分割
- branch: 拉取仓库的分支
- days: 需要保留的日志的天数
- file_path: 任务执行时的文件路径
- env_name: 任务执行时需要并发或者指定时的环境变量名称
- account_number: 任务执行时指定某个环境变量需要执行的账号序号
- max_time: 超时时间,后缀"s"代表秒(默认值), "m"代表分, "h"代表小时, "d"代表天
12、常用Corn时间规则
*/5 * * * * ? #每隔 5 秒执行一次
0 */1 * * * ? #每隔 1 分钟执行一次
0 0 2 1 * ? * #每月 1 日的凌晨 2 点执行一次
0 15 10 ? * #MON-FRI 周一到周五每天上午 10:15 执行
0 15 10 ? 6L #2002-2006 2002 年至 2006 年的每个月的最后一个星期五上午 10:15 执行
0 0 23 * * ? #每天 23 点执行一次
0 0 1 * * ? #每天凌晨 1 点执行一次
0 0 1 1 * ? #每月 1 日凌晨 1 点执行一次
0 0 23 L * ? #每月最后一天 23 点执行一次
0 0 1 ? * L #每周星期天凌晨 1 点执行一次
0 26,29,33 * * * ? #在 26 分、29 分、33 分执行一次
0 0 0,13,18,21 * * ? #每天的 0 点、13 点、18 点、21 点都执行一次
0 0 10,14,16 * * ? #每天上午 10 点,下午 2 点,4 点执行一次
0 0/30 9-17 * * ? #朝九晚五工作时间内每半小时执行一次
0 0 12 ? * WED #每个星期三中午 12 点执行一次
0 0 12 * * ? #每天中午 12 点触发
0 15 10 ? * * #每天上午 10:15 触发
0 15 10 * * ? #每天上午 10:15 触发
0 15 10 * * ? * #每天上午 10:15 触发
0 15 10 * * ? #2005 2005 年的每天上午 10:15 触发
0 * 14 * * ? #每天下午 2 点到 2:59 期间的每 1 分钟触发
0 0/5 14 * * ? #每天下午 2 点到 2:55 期间的每 5 分钟触发
0 0/5 14,18 * * ? #每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发
0 0-5 14 * * ? #每天下午 2 点到 2:05 期间的每 1 分钟触发
0 10,44 14 ? 3 WED #每年三月的星期三的下午 2:10 和 2:44 触发
0 15 10 ? * MON-FRI #周一至周五的上午 10:15 触发
0 15 10 15 * ? #每月 15 日上午 10:15 触发
0 15 10 L * ? #每月最后一日的上午 10:15 触发
0 15 10 ? * 6L #每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6L #2002-2005 2002 年至 2005 年的每月的最后一个星期五上午 10:15 触发
0 15 10 ? * 6#3 #每月的第三个星期五上午 10:15 触发