蓝鲸作业平台(Job)是一套运维基础操作管理系统,具备海量任务并发处理能力。除了支持脚本执行、文件分发、定时任务等一系列基础运维场景以外,还支持通过流程调度能力将零碎的单个任务组装成一个自动化作业流程;而每个作业都可做为一个原子节点,提供给上层或周边系统/平台使用,实现调度自动化。

Related tags

Spring Boot bk-job
Overview

LOGO

license Release Version

重要提示: master 分支在开发过程中可能处于 不稳定或者不可用状态 。 请通过releases 而非 master 去获取稳定的二进制文件。

蓝鲸作业平台(Job)是一套运维脚本管理系统,具备海量任务并发处理能力。除了支持脚本执行、文件分发、定时任务等一系列基础运维场景以外,还支持通过流程调度能力将零碎的单个任务组装成一个自动化作业流程;而每个作业都可做为一个原子节点,提供给上层或周边系统/平台使用,实现跨系统调度自动化。

Benefits

安全可靠的高危命令检测能力

作为底层面向服务器OS的原子操作平台,对用户操作指令是否合规、安全的检测至关重要!作业平台支持通过正则表达式设置各种不同脚本语言的高危命令语句检测规则,并且提供被阻拦的操作日志;即便是周边系统通过 API 形式调度执行,也能够被实时检测拦截,让服务器操作更安全!

完善的脚本版本管理

云化脚本版本管理模式,贴合现代化开放协同的理念,协作者之间借助平台便捷的共享脚本资源;利用版本管理功能,您可以很好的控制版本的上/下线状态,并能够在出安全漏洞时快速禁用、及时止损!

作业编排,一切皆场景

当一个操作场景需要多个步骤串联执行时,如果手工一个个去点击执行,那么效率实在太低了!并且,也没办法很好的沉淀下来,方便后续持续使用和维护。

作业平台的作业管理功能很好的解决了这个问题,用户可以在「作业模板」中配置好相应的执行步骤,然后再根据需求场景衍生对应的「执行方案」;如此,即清晰的区分开作业模板和实例的关系,避免强耦合关系,也便于后续对使用场景的管理和维护。

原汁原味的 Cron 定时任务

保留了 Linux 原生的 Crontab 定时任务使用习惯,让运维同仁能够更平滑、快速的上手;更有贴心的监测功能助您发现及时掌握定时任务的动向和执行情况。

高扩展性的文件源管理能力

在文件分发的需求场景中,我们除了从远程服务器、本地文件作为传输源以外,还可能需要从对象存储、FTP、Samba等不同的文件系统/服务获取文件;

为了满足这种多元化的文件源对接诉求,我们开放了文件源插件的能力,支持开发者根据自己的文件系统类型开发插件对接作业平台的文件源管理模块,从而实现从不同文件系统分发的能力。

bk-job 提供了快速执行、任务编排、定时执行等核心服务,多重组合,满足企业不同场景的需求:

  • 快速执行:提供临时性且多变的快速一次性操作入口,用完即走
  • 任务编排:对于重复性的操作组合,可以通过编排功能将其沉淀为“作业”,方便管理和使用
  • 定时执行:支持用户按业务逻辑诉求设置周期性或一次性的定期执行计划
  • 脚本管理:将脚本以云化模式统一管理,更好的支持作业编排和周边系统调度的灵活度
  • 账号管理:管理服务器OS的执行账户,如Linux的 root,Windows的 administrator 等等
  • 消息通知:满足业务按管理需求设置任务不同状态的执行结果消息通知
  • 文件源管理:开放文件源对接插件能力,满足从不同文件系统类型拉取文件并传输的诉求
  • 运营分析:提供平台的运营统计数据展示,助力管理员更全方位的了解平台的运行情况
  • 平台管理:丰富的平台管理员工具,包括但不仅限于信息更改、消息渠道设置、高危语句检测规则、功能限制设置、公共脚本管理、后台服务状态展示等等

Overview

Features

详情可见蓝鲸官网作业平台产品白皮书

Getting started

Support

  1. GitHub讨论区

BlueKing Community

  • BK-BCS:蓝鲸容器管理平台是以容器技术为基础,为微服务业务提供编排管理的基础服务平台。
  • BK-BCS-SaaS:蓝鲸容器管理平台SaaS基于原生Kubernetes和Mesos自研的两种模式,提供给用户高度可扩展、灵活易用的容器产品服务。
  • BK-CI:蓝鲸持续集成平台是一个免费并开源的CI服务,让开发者可以自动化构建-测试-发布工作流,持续、快速、高质量地交付产品。
  • BK-CMDB:蓝鲸配置平台(蓝鲸CMDB)是一个面向资产及应用的企业级配置管理平台。
  • BK-PaaS:蓝鲸PaaS平台是一个开放式的开发平台,让开发者可以方便快捷地创建、开发、部署和管理SaaS应用。
  • BK-SOPS:蓝鲸标准运维(SOPS)是通过可视化的图形界面进行任务流程编排和执行的系统,是蓝鲸体系中一款轻量级的调度编排类SaaS产品。

Contributing

License

BK-JOB 是基于 MIT 协议, 详细请参考 LICENSE

Comments
  • bugfix: 作业平台执行MySQL模板脚本地址匹配异常 #1158

    bugfix: 作业平台执行MySQL模板脚本地址匹配异常 #1158

    缺陷场景: 在蓝鲸作业平台执行MySQL脚本的时候, 蓝鲸会通过内置的MySQL template脚本来执行用户上传的脚本。

    脚本内有一个端口匹配的逻辑, 根据用户在作业平台传入的账号端口号去拼接MySQL的连接地址

    跳转至问题代码

    netstat -ntl | grep ${PORT} | awk '{print $4}'

    因为grep为模糊匹配, 忽略了存在类似端口开启的可能, 例如MySQL的3306, 脚本还可以grep到33060,43306......, 导致最后拼接的MySQL连接地址异常, 从而导致脚本执行失败。

    可以通过修改grep规则简单的修复问题:netstat -ntl | grep ":${PORT} " | awk '{print $4}'

    good first issue doing 
    opened by Weiney 3
  • 能否提供Java版SDK

    能否提供Java版SDK

    随着7.0的到来,平台支持容器方式部署,理论上可以支持所有开发语言(包括Java)做SaaS开发。 但没有示例使用java开发SaaS——其中难点在于没有调用 API 的Java版SDK。 正好 bk-job 是java版的应用,里面有一些调用平台的jar。是否可以写一个文档,或做一个示例,让Java版的SaaS开发成为可能。

    kind/enhancement good first issue 
    opened by liyin 3
  • feature: Job对接GSE1.0/2.0支持灰度 #1602

    feature: Job对接GSE1.0/2.0支持灰度 #1602

    1. 按照与GSE讨论的灰度方案结果,简化调用GSE场景。第一种,如果走GSE1.0, 全部使用云区域+ipv4的方式,调用thrift;第二种,如果走GSE 2.0, 那么统一使用GSE 2.0 HTTP API, 传入真实的从cmdb拿到的bk_agent_id。
    2. Job支持按照业务灰度对接GSE1.0/2.0(按任务权重对接影响范围较大,咱不提供)
    3. 考虑到agent状态查询、任务下发、结果查询之间的关联性,对于同一个任务来说,需要调用同一个GSE。处理如下: 在TaskExecuteServiceImpl中就根据特性开关确定使用GSE1.0/2.0。如果用GSE1.0,那么设置agentId为{云区域ID:IPv4}这种兼容模式;如果用GSE2.0,那么设置agentId为真实的从cmdb获取到的bk_agent_id属性。后续的Agent状态查询/任务下发,根据agentId的版本选择下发的GSE.
    4. 查询GSE任务结果使用GSE_TASK_ID判定版本(跟GSE预定,他们2.0的TASK_ID以GSE:V2:开头)
    5. 重构特性开关能力,并支持通过/actuator/refresh endpoint 动态刷新配置并处理配置刷新事件(EnvironmentChangeEvent)
    6. 支持动态刷新配置的能力,见 #1620 ,开发中
    opened by wangyu096 2
  • bugfix: Bat高危拦截不生效,也没有提示

    bugfix: Bat高危拦截不生效,也没有提示

    Version / Branch / tag ≥3.5.1

    出了什么问题?(What Happened?) image

    这个规则 del /f /s /q C:\tmp 竟然没有正确命中

    如何复现?(How to reproduce?) 使用 bat 脚本的这个高位表达式 del /f /s /q C:\tmp

    预期结果(What you expect?) 应该要命中才对

    kind/bug priority/critical-urgent 
    opened by nekzhang 2
  • bugfix: 全局设置消息预览在发送失败的情况下仍提示发送成功

    bugfix: 全局设置消息预览在发送失败的情况下仍提示发送成功

    Version / Branch / tag 3.5.x

    出了什么问题?(What Happened?) 全局设置消息预览在发送失败的情况下仍提示发送成功

    如何复现?(How to reproduce?) 全局设置消息预览,选择正确的人员与异常的消息通道发送消息进行预览

    预期结果(What you expect?) 在发送失败的情况下提示发送失败

    kind/bug stage/prod stage/test stage/uat 
    opened by jsonwan 2
  • 项目启动报Perm content is empty

    项目启动报Perm content is empty

    我想对bk-job做二开,但是在idea启动后,除了job-config可以正常启动外,别的项目都报如下错误: [2022-06-26 16:37:45.044] ERROR [,,] 8052 --- [main] o.s.boot.SpringApplication : Application run failed

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'interceptorConfiguration' defined in file [E:\SoftwareProject\bk-job\src\backend\job-manage\boot-job-manage\build\classes\java\main\com\tencent\bk\job\manage\config\InterceptorConfiguration.class]: Unsatisfied dependency expressed through constructor parameter 5; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serviceSecurityInterceptor' defined in URL [jar:file:/E:/SoftwareProject/bk-job/src/backend/commons/common-web/build/libs/common-web-1.0.0.jar!/com/tencent/bk/job/common/web/interceptor/ServiceSecurityInterceptor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtManager' defined in class path resource [com/tencent/bk/job/common/security/autoconfigure/ServiceSecurityAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.tencent.bk.job.common.util.jwt.JwtManager]: Factory method 'jwtManager' threw exception; nested exception is java.io.IOException: Perm content is empty at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1354) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318) at com.tencent.bk.job.manage.JobManageBootApplication.main(JobManageBootApplication.java:54) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'serviceSecurityInterceptor' defined in URL [jar:file:/E:/SoftwareProject/bk-job/src/backend/commons/common-web/build/libs/common-web-1.0.0.jar!/com/tencent/bk/job/common/web/interceptor/ServiceSecurityInterceptor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtManager' defined in class path resource [com/tencent/bk/job/common/security/autoconfigure/ServiceSecurityAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.tencent.bk.job.common.util.jwt.JwtManager]: Factory method 'jwtManager' threw exception; nested exception is java.io.IOException: Perm content is empty at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1354) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 20 common frames omitted Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jwtManager' defined in class path resource [com/tencent/bk/job/common/security/autoconfigure/ServiceSecurityAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.tencent.bk.job.common.util.jwt.JwtManager]: Factory method 'jwtManager' threw exception; nested exception is java.io.IOException: Perm content is empty at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791) ... 34 common frames omitted Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.tencent.bk.job.common.util.jwt.JwtManager]: Factory method 'jwtManager' threw exception; nested exception is java.io.IOException: Perm content is empty at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ... 48 common frames omitted Caused by: java.io.IOException: Perm content is empty at com.tencent.bk.job.common.util.crypto.RSAUtils.getPermKey(RSAUtils.java:85) at com.tencent.bk.job.common.util.crypto.RSAUtils.getPrivateKey(RSAUtils.java:108) at com.tencent.bk.job.common.util.jwt.BasicJwtManager.(BasicJwtManager.java:56) at com.tencent.bk.job.common.security.jwt.AutoUpdateJwtManager.(AutoUpdateJwtManager.java:14) at com.tencent.bk.job.common.security.autoconfigure.ServiceSecurityAutoConfiguration.jwtManager(ServiceSecurityAutoConfiguration.java:50) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 49 common frames omitted

    opened by wxywh 2
  • bugfix: 高危脚本检查后台报错

    bugfix: 高危脚本检查后台报错

    版本/分支/tag 3.4.3 问题描述 执行高危脚本检查的时候,后台报错

    Caused by: java.lang.ArrayIndexOutOfBoundsException: 39
            at com.tencent.bk.job.manage.manager.script.check.checker.DefaultChecker.checkScriptLines(DefaultChecker.java:65)
            at com.tencent.bk.job.manage.manager.script.check.checker.DefaultChecker.checkScriptLines(DefaultChecker.java:52)
            at com.tencent.bk.job.manage.manager.script.check.checker.ScriptLogicChecker.call(ScriptLogicChecker.java:70)
            at com.tencent.bk.job.manage.manager.script.check.checker.ScriptLogicChecker.call(ScriptLogicChecker.java:44)
    

    如何复现 当脚本内容最后一行为#开头的时候。比如:

    #!/bin/bash
    
    anynowtime="date +'%Y-%m-%d %H:%M:%S'"
    NOW="echo [\`$anynowtime\`][PID:$$]"
    
    ##### 可在脚本开始运行时调用,打印当时的时间戳及PID。
    function job_start
    {
        echo "`eval $NOW` job_start"
    }
    
    ##### 可在脚本执行成功的逻辑分支处调用,打印当时的时间戳及PID。
    function job_success
    {
        MSG="$*"
        echo "`eval $NOW` job_success:[$MSG]"
        exit 0
    }
    
    ##### 可在脚本执行失败的逻辑分支处调用,打印当时的时间戳及PID。
    function job_fail
    {
        MSG="$*"
        echo "`eval $NOW` job_fail:[$MSG]"
        exit 1
    }
    
    job_start
    
    ###### 作业平台中执行脚本成功和失败的标准只取决于脚本最后一条执行语句的返回值
    ###### 如果返回值为0,则认为此脚本执行成功,如果非0,则认为脚本执行失败
    ###### 可在此处开始编写您的脚本逻辑代码
    

    预期结果 后台不报错

    kind/bug stage/prod stage/test stage/uat 
    opened by wangyu096 2
  • bugfix: 执行方案步骤包含全局可变变量,“失败ip重试”的时候后台异常

    bugfix: 执行方案步骤包含全局可变变量,“失败ip重试”的时候后台异常

    • 问题描述 执行方案步骤包含全局可变变量,“失败ip重试”的时候任务一直处理正在运行中,且无法终止。

    • 后台错误: org.jooq.exception.DataAccessException: SQL [insert into job_execute.step_instance_variable (task_instance_id, step_instance_id, execute_count, type, param_values) values (?, ?, ?, ?, ?)]; Duplicate entry '30094846266-0-1' for key 'uk_step_instance_id_execute_count_type'

    kind/bug stage/prod stage/test layer/backend stage/dev 
    opened by wangyu096 2
  • bugfix: 作业平台调用快速分发文件API,transferMode参数不生效

    bugfix: 作业平台调用快速分发文件API,transferMode参数不生效

    Version / Branch / tag

    3.5.2-beta.1

    出了什么问题?(What Happened?)

    调用接口进行文件分发,传输模式选择严谨模式,但执行后却是强制模式。 image image

    如何复现?(How to reproduce?)

    按问题描述即可复现

    预期结果(What you expect?) transfer_mode参数生效

    kind/bug stage/prod stage/test 
    opened by wangyu096 1
  • bugfix: job-gateway 模块 actuator endpoint 缺少认证

    bugfix: job-gateway 模块 actuator endpoint 缺少认证

    Version / Branch / tag

    3.5.x-3.7.x

    出了什么问题?(What Happened?)

    job-gateway 模块 actuator endpoint 缺少认证

    如何复现?(How to reproduce?)

    curl http://localhost:19876/actuator/beans 等,无需认证即可获取到数据

    预期结果(What you expect?)

    job-gateway 模块 actuator endpoint 需要加上认证

    kind/bug 
    opened by wangyu096 0
  • perf: 更聪明的自动判断“执行账号”的选项合理性并给出指引

    perf: 更聪明的自动判断“执行账号”的选项合理性并给出指引

    需求背景

    当执行目标主机和执行账户不对等时(如windows主机用linux账号),可能会导致执行失败(因为windows的用户账号执行时需要密码,而linux不用);希望在用户选择完执行目标后,JOB可以聪明的判断执行目标主机的OS类型,给出明确的提醒和指引让用户确认是否需要更改执行账号,避免执行后失败再重来。

    需求描述

    kind/enhancement 
    opened by nekzhang 0
  • bugfix: 目标主机为IPv6, 作业执行详情-导出日志的主机ip信息显示为null

    bugfix: 目标主机为IPv6, 作业执行详情-导出日志的主机ip信息显示为null

    Version / Branch / tag

    出了什么问题?(What Happened?)

    • 目标主机为IPv6, 作业执行详情-导出日志的主机ip信息显示为null
    image image

    如何复现?(How to reproduce?)

    见问题描述

    预期结果(What you expect?)

    1. 优先输出IPv4主机;如果不存在,输出IPv6
    kind/bug stage/test 
    opened by wangyu096 0
  • bugfix: 目标主机只有IPv6地址,JOB_LAST_SUCCESS/JOB_LAST_FAIL/JOB_LAST_ALL魔法变量输出值为null

    bugfix: 目标主机只有IPv6地址,JOB_LAST_SUCCESS/JOB_LAST_FAIL/JOB_LAST_ALL魔法变量输出值为null

    Version / Branch / tag

    3.7.x

    出了什么问题?(What Happened?) 如果目标主机只有IPv6地址,使用JOB_LAST_SUCCESS/JOB_LAST_FAIL/JOB_LAST_ALL魔法变量输出变量值,变量值=null

    image

    如何复现?(How to reproduce?)

    见问题描述

    预期结果(What you expect?)

    1. 如果存在IPv4地址,优先使用IPv4; 否则使用IPv6地址
    kind/bug stage/test 
    opened by wangyu096 0
Releases(v3.6.1-rc.5)
  • v3.6.1-rc.5(Dec 16, 2022)

  • v3.6.1-rc.4(Dec 14, 2022)

    新增

    • [新增] 3.6.x版本移除对agentId的依赖 链接
    • [新增] 全局变量结尾的使用全局变量文案不合适。而且为什么突然要处理json? 链接
    • [新增] hotfix: 应该提示下个性化--脚本模板的作用范围及时机 链接
    • [新增] 脚本管理支持脚本内容、脚本版本日志检索 链接
    • [新增] hotfix: 点击版本对比,跳转到的页面并非对比页面,用户不知道该对比啥 链接
    • [新增] 版本对比这个代码配色有点奇怪。 链接

    修复

    • [修复] 作业平台调用快速分发文件API,transferMode参数不生效 链接
    • [修复] 作业模板调试页面的统计计数有误 链接
    • [修复] [ipv6]第三方文件源分发文件,会产生重复的执行结果 链接
    • [修复] 修复Spring Cloud Function拒绝服务漏洞(CVE-2022-22979) 链接
    • [修复] 本地文件分发报错 链接
    • [修复] form样式调整 链接
    • [修复] 作业模板更新后,调试时使用的变量不是最新模板中的值 链接
    • [修复] 新增/编辑脚本版本,会导致脚本上的标签丢失 链接
    • [修复] 上传/下载限速的输入框未作限制 链接
    • [修复] 文件上传设置的允许范围可以填入空格 链接
    • [修复] 账号命名规则可以单独输入空格或者为空并且保存 链接
    • [修复] job-logsvr在主机名称含有下划线的主机上启动失败 链接
    • [修复] 3.6.x导航跳转问题 链接
    • [修复] 默认BAT脚本文字错误 链接
    • [修复] 选择主机数量较多的动态分组执行时接口超时 链接
    • [修复] 纯IPv6环境分发本地文件/第三方文件一直卡住 链接
    • [修复] 作业编辑态时脚本内出现“扫描”级别的高危语句无法保存 链接

    优化

    • [优化] 国际化补充 链接
    • [优化] 代码命名调整 链接
    • [优化] 容器化-支持各微服务按顺序更新 链接
    • [优化] 容器化-Job、InitContainer等资源增加resources限制参数 链接
    • [优化] 脚本高危语句检测提示文案调整 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2-rc.5(Dec 14, 2022)

    新增

    • [新增] 业务拓扑树置顶显示空闲机池等内置拓扑结构 链接

    修复

    • [修复] 作业平台调用快速分发文件API,transferMode参数不生效 链接
    • [修复] 修复Spring Cloud Function拒绝服务漏洞(CVE-2022-22979) 链接
    • [修复] 作业模板更新后,调试时使用的变量不是最新模板中的值 链接
    • [修复] 脚本高危语句检测提示文案调整 链接
    • [修复] 新增/编辑脚本版本,会导致脚本上的标签丢失 链接
    • [修复] job-logsvr在主机名称含有下划线的主机上启动失败 链接
    • [修复] 选择主机数量较多的动态分组执行时接口超时 链接
    • [修复] 作业编辑态时脚本内出现“扫描”级别的高危语句无法保存 链接
    • [修复] 数据库账号的端口可以输入负数 链接
    • [修复] copyright markdown解析问题 链接
    • [修复] 本地文件上传大小限制可以输入负数 链接
    • [修复] 高危语句检测存在一个正则失败的规则会导致所有该种类所有规则不生效 链接
    • [修复] 分发文件名含空格的本地文件失败 链接

    优化

    • [优化] 国际化补充 链接
    • [优化] 容器化-Job、InitContainer等资源增加resources限制参数 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.6.1-alpha.2(Dec 13, 2022)

    新增

    • [新增] 全局变量结尾的使用全局变量文案不合适。而且为什么突然要处理json? 链接
    • [新增] hotfix: 应该提示下个性化--脚本模板的作用范围及时机 链接

    修复

    • [修复] 作业模板调试页面的统计计数有误 链接
    • [修复] [ipv6]第三方文件源分发文件,会产生重复的执行结果 链接
    • [修复] 修复Spring Cloud Function拒绝服务漏洞(CVE-2022-22979) 链接
    • [修复] 本地文件分发报错 链接
    • [修复] form样式调整 链接

    优化

    • [优化] 代码命名调整 链接
    • [优化] 脚本高危语句检测提示文案调整 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2-alpha.4(Dec 9, 2022)

  • v3.6.1-alpha.1(Dec 6, 2022)

    新增

    • [新增] 脚本管理支持脚本内容、脚本版本日志检索 链接
    • [新增] hotfix: 点击版本对比,跳转到的页面并非对比页面,用户不知道该对比啥 链接
    • [新增] hotfix: 应该提示下个性化--脚本模板的作用范围及时机 链接
    • [新增] 版本对比这个代码配色有点奇怪。 链接

    修复

    • [修复] 作业模板更新后,调试时使用的变量不是最新模板中的值 链接
    • [修复] 新增/编辑脚本版本,会导致脚本上的标签丢失 链接
    • [修复] 上传/下载限速的输入框未作限制 链接
    • [修复] 文件上传设置的允许范围可以填入空格 链接
    • [修复] 账号命名规则可以单独输入空格或者为空并且保存 链接
    • [修复] job-logsvr在主机名称含有下划线的主机上启动失败 链接
    • [修复] 3.6.x导航跳转问题 链接
    • [修复] 默认BAT脚本文字错误 链接
    • [修复] 选择主机数量较多的动态分组执行时接口超时 链接
    • [修复] 纯IPv6环境分发本地文件/第三方文件一直卡住 链接
    • [修复] 作业编辑态时脚本内出现“扫描”级别的高危语句无法保存 链接
    • [修复] 体验问题修复 链接
    • [修复] 通过接口创建/更新文件源增加校验 链接

    优化

    • [优化] 容器化-支持各微服务按顺序更新 链接
    • [优化] 容器化-Job、InitContainer等资源增加resources限制参数 链接
    • [优化] job-gateway从ESB获取JWT公钥增加重试 链接
    • [优化] Job Redis 缓存的JSON数据序列化、反序列化容错 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2-beta.3(Dec 5, 2022)

  • v3.5.2-beta.2(Dec 2, 2022)

    修复

    • [修复] 脚本高危语句检测提示文案调整 链接
    • [修复] 新增/编辑脚本版本,会导致脚本上的标签丢失 链接
    • [修复] job-logsvr在主机名称含有下划线的主机上启动失败 链接
    • [修复] 选择主机数量较多的动态分组执行时接口超时 链接
    • [修复] 作业编辑态时脚本内出现“扫描”级别的高危语句无法保存 链接

    优化

    • [优化] 容器化-Job、InitContainer等资源增加resources限制参数 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.2-beta.1(Nov 11, 2022)

    新增

    • [新增] 业务拓扑树置顶显示空闲机池等内置拓扑结构 链接

    修复

    • [修复] 数据库账号的端口可以输入负数 链接
    • [修复] copyright markdown解析问题 链接
    • [修复] 本地文件上传大小限制可以输入负数 链接
    • [修复] 高危语句检测存在一个正则失败的规则会导致所有该种类所有规则不生效 链接
    • [修复] 分发文件名含空格的本地文件失败 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1(Sep 27, 2022)

    新增

    • [新增] 文件上传本地文件上传后缀调整 链接
    • [新增] 脚本已下线版本可以禁用 链接

    修复

    • [修复] 选用“业务脚本”或“公共脚本”时匹配中高危语句的交互,要和手工输入的保持一致 链接
    • [修复] 国际化Cookie域名调整 链接
    • [修复] table 为空时样式问题 链接
    • [修复] 查看全局变量主机详情的弹框title样式问题 链接
    • [修复] 已上线的脚本,为啥还提示未保存的内容 链接
    • [修复] 长时间运行后,file-worker下载第三方文件源文件失败 链接
    • [修复] 菜单的图标重复了 链接
    • [修复] 支持多个关键字,但用多个关键字,没有搜索出来 链接
    • [修复] 在从脚本“去更新”的入口点版本对比时,没有弹出对比框 链接
    • [修复] 公共脚本的同步按钮未隐藏 链接
    • [修复] 公共脚本的标签是没法修改和新增的,对应的操作入口应该处理掉 链接
    • [修复] 执行方案的全局变量批量编辑移除icon没法点 链接
    • [修复] 表格的统计没了 链接
    • [修复] 标签复制粘贴会出现一模一样的标签 链接
    • [修复] 文档链接跳转错误 链接
    • [修复] 引导页的文案逻辑问题 链接
    • [修复] 右上角导航的icon点击后会导致下拉菜单消失 链接
    • [修复] job个性化--脚本模板bat编辑后切换tab回来会变为乱码 链接
    • [修复] 标点符号纠正 链接
    • [修复] 无权限用户,收藏作业模板和执行方案显示不一致 链接
    • [修复] 作业模板调试后点击返回显示执行方案不存在 链接
    • [修复] 作业模板和执行方案对“必填”字段的命名没有统一 链接
    • [修复] 全局设置消息预览在发送失败的情况下仍提示发送成功 链接
    • [修复] 默认通知策略下定时任务执行失败不通知 链接
    • [修复] 创建密文变量时,选择可见之后无法隐藏了;变量保存之后再点开,又是隐藏的,而且不能设置可见 链接
    • [修复] tips样式错位了 链接
    • [修复] 搜索标签时, 输入关键词无法对标签值进行筛选 链接
    • [修复] 文件分发的tooltip移开之后,2个不要同时展示 链接
    • [修复] 脚本的版本对比时,切换版本后的下拉置灰对象有误 链接

    优化

    • [优化] 脚本模板设置切换语言时自动预览最新结果 链接
    • [优化] 快速执行的任务历史,不应该显示:步骤执行详情,应该显示:快速执行详情,现在会误以为是作业步骤 链接
    • [优化] 页面文字未对齐,偏移了大概3个像素1个空格位置 链接
    • [优化] 脚本列表,脚本语言的排序需要按照语言名称的字典顺序 链接
    • [优化] 点击 去更新 跳转到编辑步骤的状态后,直接把脚本列表下拉展开 链接
    • [优化] 不论是否被引用,即使新建的脚本,也提示这个,提示不正确 链接
    • [优化] 高危检测规则的操作列tooltips文案优化 链接
    • [优化] 脚本删除后,左侧的标签计数也要跟着刷新 链接
    • [优化] 消息通知编辑后没点保存,切走没有提醒 链接
    • [优化] 把执行方案ID字段也作为定时任务列表的可选显示字段 链接
    • [优化] 编辑执行方案的名称,空间太小了,改成和新建的一致 链接
    • [优化] 上一步按钮应该是个基础按钮 链接
    • [优化] 标签的复制/粘贴icon,hover给出tooltips 链接
    • [优化] 任务的操作记录体验优化 链接
    • [优化] 移除调试模板页面的另存为执行方案 链接
    • [优化] 脚本禁用的tooltips文案优化 链接
    • [优化] 批量编辑多个执行方案的全局变量时,显示变量的描述字段 链接
    • [优化] 批量编辑多个执行方案的全局变量时交互优化 链接
    • [优化] 脚本列表的下拉菜单“实时获取”,不要做缓存! 链接
    • [优化] 增加快速执行、执行引擎、定时任务等SLI指标实现 链接
    • [优化] 主机与主机关系事件处理优化 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1-rc.4(Sep 26, 2022)

    新增

    • [新增] 文件上传本地文件上传后缀调整 链接
    • [新增] 脚本已下线版本可以禁用 链接

    修复

    • [修复] 选用“业务脚本”或“公共脚本”时匹配中高危语句的交互,要和手工输入的保持一致 链接
    • [修复] 国际化Cookie域名调整 链接
    • [修复] table 为空时样式问题 链接
    • [修复] 查看全局变量主机详情的弹框title样式问题 链接

    优化

    • [优化] 脚本模板设置切换语言时自动预览最新结果 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1-rc.2(Sep 23, 2022)

  • v3.5.1-rc.1(Sep 22, 2022)

    修复

    • [修复] 长时间运行后,file-worker下载第三方文件源文件失败 链接
    • [修复] 菜单的图标重复了 链接
    • [修复] 支持多个关键字,但用多个关键字,没有搜索出来 链接
    • [修复] 在从脚本“去更新”的入口点版本对比时,没有弹出对比框 链接
    • [修复] 公共脚本的同步按钮未隐藏 链接
    • [修复] 公共脚本的标签是没法修改和新增的,对应的操作入口应该处理掉 链接
    • [修复] 已上线的脚本,为啥还提示未保存的内容 链接
    • [修复] 执行方案的全局变量批量编辑移除icon没法点 链接
    • [修复] 表格的统计没了 链接
    • [修复] 标签复制粘贴会出现一模一样的标签 链接
    • [修复] 文档链接跳转错误 链接
    • [修复] 引导页的文案逻辑问题 链接
    • [修复] 右上角导航的icon点击后会导致下拉菜单消失 链接
    • [修复] job个性化--脚本模板bat编辑后切换tab回来会变为乱码 链接
    • [修复] 选用“业务脚本”或“公共脚本”时匹配中高危语句的交互,要和手工输入的保持一致 链接
    • [修复] 标点符号纠正 链接

    优化

    • [优化] 快速执行的任务历史,不应该显示:步骤执行详情,应该显示:快速执行详情,现在会误以为是作业步骤 链接
    • [优化] 页面文字未对齐,偏移了大概3个像素1个空格位置 链接
    • [优化] 脚本列表,脚本语言的排序需要按照语言名称的字典顺序 链接
    • [优化] 点击 去更新 跳转到编辑步骤的状态后,直接把脚本列表下拉展开 链接
    • [优化] 不论是否被引用,即使新建的脚本,也提示这个,提示不正确 链接
    • [优化] 高危检测规则的操作列tooltips文案优化 链接
    • [优化] 脚本删除后,左侧的标签计数也要跟着刷新 链接
    • [优化] 消息通知编辑后没点保存,切走没有提醒 链接
    • [优化] 把执行方案ID字段也作为定时任务列表的可选显示字段 链接
    • [优化] 编辑执行方案的名称,空间太小了,改成和新建的一致 链接
    • [优化] 上一步按钮应该是个基础按钮 链接
    • [优化] 标签的复制/粘贴icon,hover给出tooltips 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.1-beta.5(Sep 16, 2022)

  • v3.5.1-beta.4(Sep 13, 2022)

    修复

    • [修复] 作业模板和执行方案对“必填”字段的命名没有统一 链接
    • [修复] 全局设置消息预览在发送失败的情况下仍提示发送成功 链接
    • [修复] 默认通知策略下定时任务执行失败不通知 链接
    • [修复] 创建密文变量时,选择可见之后无法隐藏了;变量保存之后再点开,又是隐藏的,而且不能设置可见 链接
    • [修复] tips样式错位了 链接
    • [修复] 搜索标签时, 输入关键词无法对标签值进行筛选 链接
    • [修复] 文件分发的tooltip移开之后,2个不要同时展示 链接
    • [修复] 脚本的版本对比时,切换版本后的下拉置灰对象有误 链接

    优化

    • [优化] 任务的操作记录体验优化 链接
    • [优化] 移除调试模板页面的另存为执行方案 链接
    • [优化] 脚本禁用的tooltips文案优化 链接
    • [优化] 批量编辑多个执行方案的全局变量时,显示变量的描述字段 链接
    • [优化] 批量编辑多个执行方案的全局变量时交互优化 链接
    • [优化] 脚本列表的下拉菜单“实时获取”,不要做缓存! 链接
    • [优化] 增加快速执行、执行引擎、定时任务等SLI指标实现 链接
    • [优化] 主机与主机关系事件处理优化 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.5.0.21(Jun 29, 2022)

  • v3.5.0.20(Jun 22, 2022)

    新增

    • [新增] get_script_version_detail接口增加脚本名称返回字段 链接

    修复

    • [修复] 已解除引用的账号无法删除 链接
    • [修复] 用户有且只有一个普通业务的访问权限时业务列表中权限判断不正确 链接
    • [修复] 新业务使用动态拓扑选择主机报错 链接
    • [修复] IP选择器手动输入不含云区域ID的IP报主机未注册 链接

    优化

    • [优化] 固化镜像中使用的requests版本 链接
    • [优化] 降低定时任务触发延迟 链接
    • [优化] 优化同步与事件机制,降低主机同步延迟 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.5.0.20.tgz(638.58 MB)
  • v3.5.0.17(May 30, 2022)

  • v3.5.0.15(May 27, 2022)

    新增

    • [新增] 移除发布业务集引入的兼容代码 链接
    • [新增] 业务集支持灰度启用 链接
    • [新增] 业务集改造-问题修复、代码重构 链接
    • [新增] 支持同一浏览器访问相同主域名不同子域名下的多个环境 链接
    • [新增] 新建脚本步骤快捷创建指定类型的步骤 链接

    修复

    • [修复] 运营视图权限申请跳转链接错误 链接
    • [修复] 监听主机事件顺序导致host表的业务ID字段为-1,影响作业执行 链接
    • [修复] get_job_instance_status 响应,当任务状态为“等待用户"时,finished=true不符合预期 链接
    • [修复] job-execute从job-manage加载到的IP白名单数据偶现异常 链接
    • [修复] 去执行时设置全局变量传参错误 链接
    • [修复] 收藏/取消收藏非当前业务的业务/业务集无效 链接
    • [修复] 高危语句拦截记录业务ID显示异常 链接
    • [修复] 本地文件上传tips交互问题 链接
    • [修复] 全业务选择主机展示主机不全 链接
    • [修复] 高危语句动作为扫描时,且脚本存在高危语句无法执行 链接

    优化

    • [优化] 运营分析查询某个统计量的逐业务统计列表接口返回值中的appId替换为scope 链接
    • [优化] 文件源管理页面新增/更新请求体中的sharedAppIdList参数改为scope 链接
    • [优化] 优化同步与事件机制,降低主机同步延迟 链接
    • [优化] 容器化-支持同一集群在多个命名空间下部署相同名称的release 链接
    • [优化] 补充国际化 链接
    • [优化] 服务状态实例列表中忽略k8s产生的临时实例 链接
    • [优化] 根据业务ID批量获取业务信息,忽略无效业务ID获取到的空值 链接
    • [优化] app.code与iam.system-id配置分离 链接
    • [优化] 容器化-支持配置CMDB默认供应商、服务是否启用 链接
    • [优化] 调整变量命名 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.5.0.15.tgz(638.57 MB)
  • v3.4.6.0(Apr 19, 2022)

    新增

    • [新增] 新增本地文件上传的后缀配置管理能力 链接
    • [新增] 新建作业模板页面添加变量指引 链接

    修复

    • [修复] IP选择器-手动输入添加IP后输入框值没重置 链接
    • [修复] 3.4.x版本编译报错 链接
    • [修复] 高危语句列表样式问题 链接
    • [修复] 导出页面中,执行方案勾选状态会因为切换模板而丢失 链接
    • [修复] 执行方案页面的引导逻辑有误 链接
    • [修复] 快速分发文件源包含重复文件名,作业分发卡住 链接
    • [修复] Spring Cloud Function中的SPEL表达式注入漏洞 链接
    • [修复] v3_get_cron_list接口在指定ID查询单个定时任务时报错 链接
    • [修复] 容器化多节点环境下挂载Volume失败 链接

    优化

    • [优化] 容器内日志目录调整 链接
    • [优化] 高危语句规则实时生效 链接
    • [优化] 国际化补充 链接
    • [优化] 更新前端构建配置 链接
    • [优化] 移除IP选择器“手动输入”按钮的抛弧线动效 链接
    • [优化] 支持KonaJDK 8.0.9 链接
    • [优化] 容器化Chart规范化 链接
    • [优化] 更新文档 链接
    • [优化] ESB接口fast_execute_script调用错误信息优化 链接
    • [优化] 创建定时任务ESB接口使用Validation框架进行校验 链接
    • [优化] title与footer按蓝鲸规范2.0调整 链接
    • [优化] job-analysis后台统计任务相关代码优化 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.4.6.0.tgz(636.69 MB)
  • v3.4.5.5(Mar 21, 2022)

  • v3.4.5.2(Mar 1, 2022)

  • v3.4.5.1(Mar 1, 2022)

  • v3.4.5.0(Mar 1, 2022)

    新增

    • [新增] 更新前端package.json依赖包版本 链接
    • [新增] 作业列表、脚本列表作业TAG面板显示TAG描述 链接
    • [新增] 新建作业模板页面添加变量指引 链接
    • [新增] 全局变量使用指引补充“魔法变量”说明内容 链接

    修复

    • [修复] CheckEnum类代码格式不规范 链接
    • [修复] 高危脚本规则新建编辑操作,后端没有校验参数 链接
    • [修复] 容器化环境运行一段时间后,分发文件源文件失败 链接
    • [修复] ESB接口创建定时任务传入全局变量不传type时报错 链接
    • [修复] 解决高危语句规则的表达式在编辑时允许为空的问题 链接
    • [修复] 运营分析趋势图日期范围不对 链接
    • [修复] 模板编辑提示超时时间必须在1-86400秒之间 链接
    • [修复] Spring Cloud Config 漏洞 CVE-2020-5410 链接

    优化

    • [优化] 根据一定规则(如指定业务ID或AppCode)将异常任务驱逐出执行引擎,使系统恢复可用 链接
    • [优化] 补充作业执行方案全局变量引用检测方法对魔法变量的解析逻辑 链接
    • [优化] 部署流程优化 链接
    • [优化] 容器化Chart规范化 链接
    • [优化] 新增CodeStyle配置 链接
    • [优化] 优化ESB API 参数校验,返回具体的校验错误信息 链接
    • [优化] 修复github workflow tag release 链接
    • [优化] 执行失败场景下的临时文件清理策略优化 链接
    • [优化] CMDB API调用指标统计去除反序列化时间,增加IAM、用户管理等ESB接口调用指标 链接
    • [优化] 3.3.x日志优化,便于排查同步异常问题 链接
    • [优化] 升级迁移工具支持定时任务开关恢复_3.3.x 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.4.5.0.tgz(626.15 MB)
  • v3.3.8.5(Jan 5, 2022)

    新增

    • [新增] 微服务安全配置优化 链接
    • [新增] 新增batch_get_job_instance_ip_log API 链接
    • [新增] 单次定时任务提供api接口创建 链接

    修复

    • [修复] Spring Cloud Config 漏洞 CVE-2020-5410 链接
    • [修复] clone作业模板删除逻辑处理 链接
    • [修复] 脚本检测 链接
    • [修复] 本地文件上传报错 链接
    • [修复] 用户没有公共脚本管理权限,却可以通过API查看到未上线的公共脚本版本信息 链接
    • [修复] 下发给gse的脚本任务路径不一致 链接
    • [修复] 脚本日志导出不全 链接
    • [修复] 补充业务维度相关接口的“业务访问“前置鉴权 链接
    • [修复] 业务相关的全部接口增加前置“业务访问”鉴权 链接

    优化

    • [优化] 3.3.x日志优化,便于排查同步异常问题 链接
    • [优化] 升级迁移工具支持定时任务开关恢复_3.3.x 链接
    • [优化] 增加3.3.8版本日志 链接
    • [优化] 部署流程优化 链接
    • [优化] 高危语句规则配置及拦截记录查看鉴权 链接
    • [优化] 提供JOB的资源拓扑_bk_iam_path_ 提升权限中心推荐精准度 链接
    • [优化] 微服务调用认证失败的日志优化 链接
    • [优化] 权限中心获取作业模板/执行方案、脚本、账号等资源的搜索接口 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.3.8.5.tgz(697.28 MB)
  • v3.4.1.1(Nov 2, 2021)

    新增

    • [新增] 强依赖Agent 状态的逻辑优化,提供降级处理机制 链接
    • [新增] job拉取GSE文件任务执行日志,支持根据ip查询,减少结果数据 链接
    • [新增] job支持容器化部署 链接
    • [新增] 异常通知的收敛/抑制能力 链接
    • [新增] 定时任务全局变量readonly 链接
    • [新增] 对于一些可能触发问题的大任务(主机过多、文件过多),需要打印日志和完善监控方便排查 链接

    修复

    • [修复] 标签管理鉴权不正确、批量修改错误 链接
    • [修复] 申请脚本执行权限跳转404 链接
    • [修复] ip 选择器动态分组数据格式不正确 链接

    优化

    • [优化] 快速执行脚本选择动态分组,还未添加动态分组引导链接跳转到业务拓扑页面未跳转到动态分组页 链接
    • [优化] 系统异常后的任务执行状态一直为执行中,且无法强制终止 链接
    • [优化] 调整账号管理逻辑 链接
    • [优化] 目标服务器选择主机名展示过短 链接
    • [优化] 执行引擎业务级别的任务量监控 链接
    • [优化] 批量处理工具建设 链接
    Source code(tar.gz)
    Source code(zip)
  • v3.4.0.3(Oct 20, 2021)

    新增

    • [新增] 开放了专门的 标签管理 页面,补充以标签管理作业和脚本的视角
    • [新增] 现在脚本列表页也支持通过 标签 进行快速分类筛选管理了

    修复

    • [修复]修复公共脚本鉴权缺漏导致无权限用户可查看并管理的问题
    • [修复]解决JOB下发的脚本任务临时文件路径不一致的问题
    • [修复]解决脚本执行结果的导出日志不全的问题
    • [修复]补充跟业务管理维度相关功能接口的 业务访问 前置鉴权

    优化

    • [优化] 为了更好的区分步骤状态差异,调整 忽略错误 的色号为 #abd88a
    • [优化] 优化全局变量赋值的内置脚本逻辑,解决因 & 符导致执行耗时变长的问题
    • [优化] 调整了表格自适应宽度的方式,改为最右侧固定的方式
    • [优化] 对所有「平台管理」类功能页的鉴权提示进行了视觉的优化
    • [优化] 一些常规的 UI / UX 优化...
    • [优化] 提供资源拓扑 bk_iam_path 数据,以提升权限中心的推荐精准度
    • [优化] 补充权限中心侧获取作业平台资源的对应搜索接口
    • [优化] 补充高危语句规则配置与拦截记录查看功能的鉴权逻辑
    • [优化] 一些常规的 UI / UX 优化...
    Source code(tar.gz)
    Source code(zip)
  • v3.3.7.2(Sep 10, 2021)

    新增

    • [新增] 业务集操作API扩展,支持查询业务集业务以及对业务集的删除操作 链接
    • [新增] 脚本版本UI更新 链接
    • [新增] 定时任务查看态增加对cron表达式注解指引的视觉效果 链接

    修复

    • [修复] 获取定时任务周期成功率因索引不正确导致无法正常显示的问题 链接
    • [修复] 克隆作业模板时全局变量的引用失效 链接
    • [修复] 导出大量作业下载文件未完成就中断 链接
    • [修复] 人工确认步骤的确认人配置的是任务执行人,但是非任务执行人却可以操作 链接

    优化

    • [优化] 更新3.3.7.0版本日志 链接
    • [优化] 代码格式调整 链接
    • [优化] 国际化补全 链接
    • [优化] 脚本版本Tag 的颜色优化 链接
    • [优化] 脚本”被引用“的指引和交互优化 链接
    • [优化] 定时任务的执行记录tab切换交互优化 链接
    • [优化] 任务状态的字段列宽度优化 链接
    • [优化] 被引用的 tooltips 优化 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.3.7.2.tgz(691.94 MB)
  • v3.3.6.0(Aug 5, 2021)

    新增

    • [新增] 模板步骤编辑面板添加变量指引 链接
    • [新增] 白名单IP添加时增加对“执行方式”的判断,如仅开文件分发则在脚本执行中不可选中 链接
    • [新增] 提供文件源管理、凭据管理相关ESB API 链接
    • [新增] 从“执行方案”列表页进入执行或同步页后,返回路径应该保留 链接
    • [新增] 新建作业模板完成后的跳转逻辑优化 链接

    修复

    • [修复] 目标服务器在搜索状态下重新选择主机IP页面显示错误 链接
    • [修复] 文件任务包含大量的源和目标主机,导致执行引擎阻塞 链接
    • [修复] 服务器文件服务器列表切换不生效 链接
    • [修复] 任务下发不判断agent状态 链接
    • [修复] 无效节点判断方式更新 链接
    • [修复] mongodb日志collection,分片数据存储不均衡 链接

    优化

    • [优化] 更新3.3.6.0版本日志 链接
    • [优化] 代码逻辑优化 链接
    • [优化] 对文件分发任务的源和目标使用同一批目标的情况做提醒交互 链接
    • [优化] 部署流程优化 链接
    • [优化] 全局变量功能描述不准确 链接
    • [优化] 更新文档 链接
    • [优化] 添加非主机类型的全局变量,没有隐藏移除无效主机的按钮 链接
    • [优化] 多行文本复制优化 链接
    • [优化] 运营分析页面优化 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.3.6.0.tgz(691.92 MB)
  • v3.3.5.3(Jul 16, 2021)

    新增

    • [新增] 执行账号使用权限迁移 链接
    • [新增] 全局变量支持批量编辑 链接
    • [新增] 脚本同步作业模板后,增加同步执行方案的入口,减少用户操作路径 链接
    • [新增] 手动录入IP交互优化错误IP的提示体验 链接
    • [新增] 作业列表的小红点提醒,支持点击后跳转的对应页面 链接
    • [新增] 提供一键清除无效IP的功能按钮 链接
    • [新增] “主机列表”类型的全局变量交互优化 链接
    • [新增] 用户登出时需要有二次确认窗口 链接
    • [新增] 执行方案重做时的页面包屑增加执行方案名称的显示 链接
    • [新增] License Server校验逻辑调整,仅在启动时校验 链接

    修复

    • [修复] 动态分组无权限报错 链接
    • [修复] 模板全局变量批量编辑 链接
    • [修复] 全局设置页面无权限报错 链接
    • [修复] esb api 返回响应,如果属性值为空,默认返回null 链接
    • [修复] 同步业务主机不完整 链接
    • [修复] 页面滚动back top 失效 链接
    • [修复] 业务集下的主机鉴权错误 链接
    • [修复] crontab表达式翻译问题 链接
    • [修复] IP选择器主机IP列表乱序 链接

    优化

    • [优化] esb api normalization 链接
    • [优化] 代码风格调整 链接
    • [优化] chrome 默认使用 https 的问题 链接
    • [优化] 增加3.3.5.0版本日志 链接
    • [优化] 添加Issue Template 链接
    • [优化] 抽取国际化、全局异常处理代码为基础模块 链接
    Source code(tar.gz)
    Source code(zip)
    job_ce-3.3.5.3.tgz(691.79 MB)
Owner
Tencent
Tencent
A Light-weight Job Scheduling Framework

Sundial A Lightweight Job Scheduling Framework for Java. In a Nutshell Sundial makes adding scheduled jobs to your Java application a walk in the park

Knowm 262 Dec 9, 2022
Distributed scheduled job framework

ElasticJob - distributed scheduled job solution Official website: https://shardingsphere.apache.org/elasticjob/ ElasticJob is a distributed scheduling

The Apache Software Foundation 7.8k Jan 5, 2023
Publish Jenkins performances metrics to an OpenTelemetry endpoint, including distributed traces of job executions and health metrics of the controller.

OpenTelemetry Introduction Architecture Features Getting Started Examples Configuration as Code Contributing Introduction Collect Jenkins monitoring d

Jenkins 73 Dec 26, 2022