• 定时任务管理平台青龙 QingLong


    一、关于 QingLong

    1.1 QingLong 介绍

    青龙面板是支持 Python3、JavaScript、Shell、Typescript 多语言的定时任务管理平台,支持在线管理脚本和日志等。其功能丰富,能够满足大部分需求场景,值得一试。

    主要功能

    • 支持多种脚本语言(python3、javaScript、shell、typescript)
    • 支持在线管理脚本、环境变量、配置文件
    • 支持在线查看任务日志
    • 支持秒级任务设置
    • 支持系统级通知
    • 支持暗黑模式
    • 支持手机端操作

    官方网站

    • Github:https://github.com//whyour/qinglong

    1.2 QingLong 部署

    • 下载镜像

    从 docker hub 拉取 QingLong 镜像,地址:https://hub.docker.com/r/whyour/qinglong。latest 镜像是基于 alpine 构建,debian 镜像是基于 debian-slim 构建,我们这里使用使用 debian 镜像。

    root@hcss-ecs-f632:~# docker pull whyour/qinglong:debian
    debian: Pulling from whyour/qinglong
    7dbc1adf280e: Pull complete
    4171d440ff02: Pull complete
    726c5fb7508b: Pull complete
    379fa4960c82: Pull complete
    2f8a564c8167: Pull complete
    8fa76ed50e52: Pull complete
    c2f831f6682a: Pull complete
    9f3ce2a7a342: Pull complete
    4c53dfc2225f: Pull complete
    e2cc0890f949: Pull complete
    4f4fb700ef54: Pull complete
    Digest: sha256:6e7e533d6212c86448fa9c0171373a095b76102bb5096c68aebfb85d04f0a06a
    Status: Downloaded newer image for whyour/qinglong:debian
    docker.io/whyour/qinglong:debian
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 启动服务

    通过docker-compose方式启动,配置文件 docker-compose.yml 直接从官方获取

    mkdir qinglong
    wget https://raw.githubusercontent.com/whyour/qinglong/master/docker/docker-compose.yml
    
    • 1
    • 2

    docker-compose.yml 文件如下

    version: '2'
    services:
     web:
       # debian-slim
       image: whyour/qinglong:debian
       volumes:
         - ./data:/ql/data
       ports:
         - "0.0.0.0:5700:5700"
       environment:
         QlBaseUrl: '/'
       restart: unless-stopped
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    # 启动
    root@hcss-ecs-f632:~/qinglong# docker-compose up -d
    Creating network "qinglong_default" with the default driver
    Creating qinglong_web_1 ... done
    
    • 1
    • 2
    • 3
    • 4
    # 停止
    root@hcss-ecs-f632:~/qinglong# docker-compose down
    
    • 1
    • 2
    • 检查容器状态

    检查qinglong容器状态,确保容器正常启动

    root@hcss-ecs-f632:~/qinglong# docker ps
    CONTAINER ID   IMAGE                        COMMAND                  CREATED      STATUS                 PORTS                                                 NAMES
    b905dc7ef47c   whyour/qinglong:debian       "./docker/docker-ent…"   2 days ago   Up 2 hours (healthy)   0.0.0.0:5700->5700/tcp                                qinglong_web_1
    
    • 1
    • 2
    • 3
    • 访问地址

    内网:http://localhost:5700
    外网:http://公网IP:5700

    • 访问结果

    在这里插入图片描述
    若出现此页面,则部署青龙面板成功。

    1.3 QingLong 使用

    • 基础设置与配置

    账户设置:设置用户名和密码,用于后续访问

    在这里插入图片描述

    通知设置:用于获取脚本运行情况,支持多种通知方式,如钉钉机器人、企业微信机器人等

    在这里插入图片描述

    完成安装

    在这里插入图片描述

    登录:输入用户名和密码即可登录青龙面板

    在这里插入图片描述

    • 依赖管理:安装nodejs、python、linux依赖

    创建依赖,选择依赖类型和依赖名称即可自动安装

    在这里插入图片描述

    nodejs 常用依赖
    axios, request, cheerio, js-base64, dotenv, magic, tough-cookie, ws@7.4.3, require, requests, date-fns, ts-md5, typescript, json5, axios@v0.27.2, crypto-js, @types/node, png-js, node-telegram-bot-api, fs, jsdom, form-data, jieba, tslib, ds, jsdom -g, prettytable, ql, common, node-jsencrypt, juejin-helper, moment, global-agent

    python 常用依赖
    rsa, bs4, telethon, cacheout, jieba, PyExecJS, ping3, canvas, Crypto, ds, requests, pycryptodome

    linux 常用依赖
    libc-dev, gcc, g++, libffi-dev, python3-dev

    在这里插入图片描述

    • 进阶玩法设置

    获取京东脚本库命令行

    脚本库来自:https://github.com/shufflewzc/faker3,此作者名下还有faker2仓库脚本,我们这里使用的faker3仓库,二者有什么区别作者未介绍,faker3应该新一点吧,拉取仓库命令README.md有介绍。

    ql repo https://git.metauniverse-cn.com/https://github.com/shufflewzc/faker3.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator|magic|depend|h5sts" "main"
    
    • 1

    创建任务,命令/脚本 填入上诉命令行即可,定时规则分 时 天 月 周,如输入1 0 * * *,表示每天的 00:01 自动运行脚本。

    在这里插入图片描述

    当然你也可以手动运行脚本,还可以查看脚本运行日志,运行此faker集合仓库就会下载很多京东相关的脚本,如领京豆签到、领京豆签到等任务。

    在这里插入图片描述

    使用京东相关的脚本,需要配置环境变量,名称填入JD_COOKIE填入pt_koken=xxx;pt_key=xxx;pt_pin=xxx;

    在这里插入图片描述

    关于值的获取:浏览器输入m.jd.com,完成登录,在Cookie中搜索关键词pt_,即可得到三个值,按上诉格式填入即可。
    (注意:此值不可泄漏)

    在这里插入图片描述

    完成以上配置后就可以尝试运行一些脚本,比如领京豆签到,更多玩法就需要自己探索了!

    在这里插入图片描述

    • 自定义脚本开发

    内置命令

    # 更新并重启青龙
    ql update                                                    
    # 运行自定义脚本extra.sh
    ql extra                                                     
    # 添加单个脚本文件
    ql raw <file_url>                                             
    # 添加单个仓库的指定脚本
    ql repo <repo_url> <whitelist> <blacklist> <dependence> <branch> <extensions>
    # 删除旧日志
    ql rmlog <days>                                              
    # 启动tg-bot
    ql bot                                                       
    # 检测青龙环境并修复
    ql check                                                     
    # 重置登录错误次数
    ql resetlet                                                  
    # 禁用两步登录
    ql resettfa                                                  
    
    # 依次执行,如果设置了随机延迟,将随机延迟一定秒数
    task <file_path>                                             
    # 依次执行,无论是否设置了随机延迟,均立即运行,前台会输出日,同时记录在日志文件中
    task <file_path> now                                         
    # 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日,直接记录在日志文件中,且可指定账号执行
    task <file_path> conc <env_name> <account_number>(可选的) 
    # 指定账号执行,无论是否设置了随机延迟,均立即运行 
    task <file_path> desi <env_name> <account_number>      
    # 设置任务超时时间   
    task -m <max_time> <file_path>
    # 实时打印任务日志,创建定时任务时,不用携带此参数
    task -l <file_path>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    参数说明

    • file_url: 脚本地址
    • repo_url: 仓库地址
    • whitelist: 拉取仓库时的白名单,即就是需要拉取的脚本的路径包含的字符串,多个竖线分割
    • blacklist: 拉取仓库时的黑名单,即就是需要拉取的脚本的路径不包含的字符串,多个竖线分割
    • dependence: 拉取仓库需要的依赖文件,会直接从仓库拷贝到scripts下的仓库目录,不受黑名单影响,多个竖线分割
    • extensions: 拉取仓库的文件后缀,多个竖线分割
    • branch: 拉取仓库的分支
    • days: 需要保留的日志的天数
    • file_path: 任务执行时的文件路径
    • env_name: 任务执行时需要并发或者指定时的环境变量名称
    • account_number: 任务执行时指定某个环境变量需要执行的账号序号
    • max_time: 超时时间,后缀"s"代表秒(默认值), "m"代表分, "h"代表小时, "d"代表天

    相关参考
    https://zhuanlan.zhihu.com/p/651405749?utm_id=0
    https://www.cnblogs.com/coderxx/archive/2021/12/03/15636214.html
    青龙面板仓库合集(不断更新)
    https://blog.csdn.net/liu52365/article/details/121233533
    http://blog.02868.cn/?id=37962&eqid=c6a499f10015f070000000046471fd08

  • 相关阅读:
    腾讯云服务器修改为root登录安装宝塔面板
    c# listbox
    六轴IMU估计自身在世界坐标系的位姿
    ubuntu系统安装配置gitlab+Jenkins+发布持续集成持续部署保姆级教程。
    最大的观影时间问题
    LSKA(大可分离核注意力):重新思考CNN大核注意力设计
    打开网站出现Internal Server Error的原因和解决方法
    分类分析|KNN分类模型及其Python实现
    c语言程序范例
    CSS基础:position定位的5个类型详解!
  • 原文地址:https://blog.csdn.net/weixin_44008788/article/details/133279510