sche - 一种人类能够看懂的 cron 语法(上)

简介: sche - 一种人类能够看懂的 cron 语法

在 Linux 系统上,我们一般使用 cron 来设置定时任务,然而 cron 的语法还是有些佶屈聱牙的,几乎每次要修改的时候都需要查一下文档才知道什么意思,以至于有 crontab.guru 这种网站专门来解释 cron 的语法。640.jpg想象一下,能不能有一种让人一眼就能看懂的语法来表达周期性的调度操作呢?比如说这样:

every 10 minutes         , curl apple.com
every hour               , echo 'time to take some coffee'
every day at 10:30       , eat
every 5 to 10 minutes    , firefox http://news.ycombinator.com
every monday             , say 'Good week'
every wednesday at 13:15 , rm -rf /
every minute at :17      , ping apple.com
every 90 minutes         , echo 'time to stand up'

这样的配置文件是不是很容易懂呢?如果要写成 crontab 的格式大概是这样的:

*/10 * * * *    curl apple.com
0 * * * *       echo 'time to take some coffee'
30 10 * * *     eat
*/7 * * * *     firefox http://news.ycombinator.com  # 实际上是不对的,因为 cron 没法随机
0 0 * * MON     say 'Good week'
15 13 * * WED   rm -rf /
# every minute at :17  无法实现,因为 cron 中没有秒
0 0-21/3 * * *  echo 'time to stand up'  # 需要两条命令来完成每隔 90 分钟的操作
30 1-22/3 * * * echo 'time to stand up'

可以很明显看出,cron 的语法可读性还是差一些的,关键是维护起来更是像读天书一样。幸运的是,我在周末刚刚做了一个小工具,虽然还比较粗糙,但是也已经可以解析上面这种可读性比较好的语法。下面简单介绍一下如何使用:

介绍 sche

sche 是一个 Python 程序,所以可以使用 pip 直接安装:

介绍 sche
sche 是一个 Python 程序,所以可以使用 pip 直接安装:


目录
相关文章
|
人工智能 Shell Linux
shell基础语法
shell基础语法
78 1
|
5月前
|
Shell 开发者
Shell 判断语句:决策的艺术
了解Shell脚本的选择结构,包括if和case语句,对于编写条件执行的脚本至关重要。if语句基于条件执行命令,基本格式为`if condition; then statements; fi`,可扩展为if-else或多if-elif-else结构。例如,根据输入的整数输出对应的星期。case语句更灵活,匹配特定值或模式,如`case $var in pattern) commands;; esac`,支持正则表达式。两者都用于条件分支,适用于不同场景。
26 1
|
Kubernetes Unix Python
sche - 一种人类能够看懂的 cron 语法(下)
sche - 一种人类能够看懂的 cron 语法
138 0
|
运维 调度 开发者
深入解析 Cron 表达式:定时任务的时间艺术
大家好,今天我们将一起来深入了解 Cron 表达式,这是计划任务中不可或缺的时间表达式。无论你是一名开发者、运维工程师还是对定时任务感兴趣的读者,本文都将帮助你理解 Cron 表达式的基本结构、常用格式以及如何编写自定义的定时任务。也为大家提供了一个在线cron表达式生成的工具,让我们开始探索这项定时任务的时间艺术吧!
1083 0
深入解析 Cron 表达式:定时任务的时间艺术
|
Java Unix 调度
cron 表达式解读
cron 表达式解读
|
Windows
简单理解crontab表达式
简单理解crontab表达式
285 0
|
开发工具
crontab 基础用法
crontab 基础用法
Crontab 表达式详解
一个cron表达式有至少6个(也可能7个,6个比7个少元素秒)由空格分隔的时间元素。
131 0
Cron 表达式的一个误区
Cron 表达式的一个误区
126 0
Cron 表达式的一个误区