1. 青龙面板简介
青龙面板是一个支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台
Linux自带的crontab可以配置定时任务,但是并不方便。而使用青龙面板,能够可视化配置定时任务,简单快捷。
本文中,我们学习一下青龙面板的安装配置,试一试签到薅羊毛。
参考文档:
2. 安装青龙版面
1、下载青龙面板Docker镜像
1 | docker pull whyour/qinglong:debian |
2、启动青龙面板
1 | docker run --name qinglong -d \ |
以上命令:
- 命名容器为qinglong,后台运行
- 映射宿主机5700端口到容器的5700
- 挂载宿主机文件 /opt/ql/data 到容器目录 /ql/data
- 设置环境变量 QlBaseUrl 和 QlPort,青龙面板服务启动时使用
- 设置容器主机名为 qinglong
- 设置容器随docker启动自动启动
3、验证安装
1 | docker ps |
4、登录进容器
1 | docker exec -it qinglong /bin/bash |
5、web访问青龙面板
浏览器访问 http:<ip>:5700
初次访问时,会提示进行初始化配置。
3. 内置命令
3.1. task
1 | # 依次执行,如果设置了随机延迟,将随机延迟一定秒数 |
3.2. ql
1 | # 更新并重启青龙 |
参数说明:
- file_url: 脚本地址
- repo_url: 仓库地址
- whitelist: 拉取仓库时的白名单,即就是需要拉取的脚本的路径包含的字符串,多个竖线分割
- blacklist: 拉取仓库时的黑名单,即就是需要拉取的脚本的路径不包含的字符串,多个竖线分割
- dependence: 拉取仓库需要的依赖文件,会直接从仓库拷贝到scripts下的仓库目录,不受黑名单影响,多个竖线分割
- extensions: 拉取仓库的文件后缀,多个竖线分割
- branch: 拉取仓库的分支
- days: 需要保留的日志的天数
- file_path: 任务执行时的文件路径
- env_name: 任务执行时需要并发或者指定时的环境变量名称
- account_number: 任务执行时指定某个环境变量需要执行的账号序号
- max_time: 超时时间,后缀”s”代表秒(默认值), “m”代表分, “h”代表小时, “d”代表天
4. 配置青龙面板
4.1. 配置支持更多脚本类型
点击左侧配置文件,找到 RepoFileExtensions="js py"
,修改为 RepoFileExtensions="js py sh ts"
,右上角保存。
点击左侧对比工具,对比修改前后的变化。
4.2. 安装脚本需要的依赖
点击左侧依赖管理,创建依赖,名称一栏中输入脚本可能需要的依赖,多个依赖换行输入,点击确定即可下载安装依赖。
4.3. 配置面板通知
点击左侧通知设置,选择一个通知方式,根据提示填入必要的信息,保存。
建议使用飞书机器人,配置最简单:飞书群里新建一个自定义机器人,把webhook地址的最后一段粘贴到larkKey即可。
4.4. 配置脚本通知
青龙面板设置里的那个只是用来面板级别的通知,比如订阅更新。而脚本里的通知,需要在配置文件里去配置的。详情参考文档如何设置任务执行完毕后发送通知
1、微信登录 Server酱,获取一个SendKey,测试通知
2、点击左侧配置文件,找到 PUSH_KEY
,填入上一步获取到的 SendKey,保存
4.5. 配置代理
点击左侧环境变量,添加两个关于代理的环境变量。
1 | http_proxy=http://192.168.5.233:20171 |
之所以要配置代理,是因为很多订阅是从github拉取的,而github从国内访问是需要科学上网的,因此最好配置一下代理。
这两个代理变量,平时禁用,拉取订阅时启用。
5. 配置签到任务
5.1. 阿里云盘签到(已废弃)
参考文档:github - mrabit/aliyundriveDailyCheck
1、获取阿里云盘 refresh_token
web登录阿里云盘后,控制台粘贴
1 | copy(JSON.parse(localStorage.token).refresh_token); console.log(JSON.parse(localStorage.token).refresh_token); |
2、青龙面板添加环境变量 refreshToken
如果有多个账号要签到,那就添加多个refreshToken。
3、安装js依赖
1 | axios |
4、添加订阅
1 | ql repo https://github.com/mrabit/aliyundriveDailyCheck.git "autoSignin" "" "qlApi" |
添加订阅后,点击运行,即可从github拉取定时任务。拉取成功之后,建议禁用订阅。
5、配置定时任务
点击定时任务页面,找到 autoSignin.js 任务,点击运行,测试运行。
测试没有问题,编辑定时任务,设置一个合适的运行时间。
6、配置自动更新 refreshToken
系统设置,应用设置,创建一个应用 autoSignin(名称随意)。
autoSignin 应用的 CLIENT_ID 和 CLIENT_SECRET 配置到环境变量中。