第240114期 - cron
2.7k star,推荐一款带UI的crontab替代平开源地址在文末:
Cronicle是一款基于Node.js开发的多服务器任务调度和运行工具,它有一个基于web的前端UI,可以方便地管理和监控各种定时或者按需的任务,是一个功能强大的Cron替代品。
本文将介绍Cronicle的主要功能特点,以及如何安装和使用它,最后对它进行一个简单的评价,并给出一些类似的工具供参考。
功能特点
Cronicle的功能特点可以概括为以下几点²:
- 单机或多机部署。可以自动发现附近的服务器,并在主服务器故障时自动切换到备用服务器。任务也可以自动重试。
- 使用可视化的日期/时间选择器来安排任务。任务可以是单次的或者重复的,可以按照小时、天、周、月或者年的任意组合来设置。这与Cron的格式非常类似。
- 可以自定义任务的运行模式。可以指定单个服务器,或者从服务器组中随机选择。可以选择是否补偿和运行错过的任务,以及是否重试失败的任务。
- 实时的状态和日志查看。可以看到任务的进度条和剩余时间的估计,以及实时的日志输出。可以跟踪每个任务的CPU和内存使用情况。
- 简单但强大的插件API。插件可以用任何语言编写,只需要使用一个简单的JSON系统来与Cronicle通信,并且可以自定义UI控件。
- 支持多时区。可以自动检测用户和服务器的时区,并允许在任何时区安排任务。
- 可以将多个任务链接在一起。任务可以触发其他任务,从而创建一个顺序的任务链。还可以在任务之间传递自定义的数据。
- 提供外部的JSON REST API。可以使用API密钥来验证远程应用,并使用web钩子来实现外部的通知系统。
- 不需要数据库。所有的数据都可以存储为JSON文件。
安装和使用
Cronicle的安装和使用非常简单,只需要执行以下几个步骤:
- 安装Node.js和npm。Cronicle需要Node.js 8.0或更高版本,以及npm 5.0或更高版本。
- 下载Cronicle的安装脚本。可以使用
curl -s https://raw.githubusercontent.com/jhuckaby/Cronicle/master/bin/install.js | node
命令来下载并运行安装脚本。 - 启动Cronicle。安装完成后,可以使用
/opt/cronicle/bin/control.sh start
命令来启动Cronicle。 - 访问Cronicle的web UI。默认情况下,Cronicle的web UI可以通过
http://localhost:3012/
来访问。第一次访问时,需要创建一个管理员账户。 - 创建和运行任务。在web UI中,可以创建和管理任务,以及查看任务的状态和日志。任务可以是简单的shell命令,也可以是自定义的插件。
总结和评价
Cronicle是一个非常实用和强大的多服务器任务调度和运行工具,它有一个友好的web UI,可以方便地管理和监控各种任务。它支持多种任务类型,多种运行模式,多种通知方式,以及多种语言的插件。
它的安装和使用也非常简单,不需要数据库或者其他的依赖。它是一个开源和MIT许可的项目,可以自由地修改和使用。它的缺点可能是它的文档和社区不够完善,以及它的兼容性和安全性有待提高。
类似工具
除了Cronicle之外,还有一些类似的工具,可以实现多服务器任务调度和运行的功能,例如:
-
[Rundeck]:一个开源的Java平台,可以用来自动化运维和业务流程。它有一个web UI,可以创建和执行任务,以及查看任务的状态和日志。它支持多种任务类型,多种运行模式,多种通知方式,以及多种语言的插件。它的安装和使用也比较简单,但需要Java环境和数据库。
-
[Airflow]:一个开源的Python平台,可以用来编排和监控数据流程。它有一个web UI,可以创建和执行任务,以及查看任务的状态和日志。它支持多种任务类型,多种运行模式,多种通知方式,以及多种语言的插件。它的安装和使用比较复杂,需要Python环境和数据库。
-
[Jenkins]:一个开源的Java平台,可以用来实现持续集成和持续交付。它有一个web UI,可以创建和执行任务,以及查看任务的状态和日志。它支持多种任务类型,多种运行模式,多种通知方式,以及多种语言的插件。它的安装和使用比较简单,但需要Java环境和数据库。
开源地址:https://github.com/jhuckaby/Cronicle