我最喜欢的开源 crontab 工具

Crontab-ui 是一个用 Node.js 编写的 Web 前端,可以帮助管理 crontab 文件。
3 位读者喜欢这篇文章。
Business woman on laptop sitting in front of window

图片来源:Mapbox Uncharted ERG, CC-BY 3.0 US

自动化现在是一个热门话题。在我的日常工作中,作为一名站点可靠性工程师 (SRE),我的部分职责是尽可能多地自动化重复性任务。但是我们有多少人在日常非工作生活中这样做呢?今年,我专注于自动化消除苦差事,以便我们可以专注于重要的事情。

我作为一名刚入门的系统管理员最早了解的事情之一是 cron。Cron 被广泛用于执行诸如轮换日志、启动和停止服务、运行实用程序作业等等。它几乎在所有 Unix 和 Linux 系统上都可用,并且是我认识的每位系统管理员用来帮助管理服务和服务器的东西。Cron 可以自动运行任何控制台应用程序或脚本,这使其非常非常灵活。

Image of a Crontab

(Kevin Sonney, CC BY-SA 4.0)

我使用 cron 来获取电子邮件、运行过滤程序、确保服务正在运行、与 Habitica 等在线游戏互动以及更多。

以传统方式使用 cron

要开始使用 cron,您只需在命令行中键入 crontab -e 即可打开一个编辑器,其中包含您自己的当前 crontab(或“cron 表”)文件(如果您以 root 身份执行此操作,您将获得系统 crontab)。这是保存作业计划以及何时运行内容的地方。David Both 已经 广泛 地撰写了关于文件格式以及如何使用它的文章,因此我不会在此处介绍。我要说的是,对于新用户来说,这可能有点吓人,而且设置定时有点麻烦。

介绍 crontab-ui

有很多很棒的工具可以帮助解决这个问题。我最喜欢的是 crontab-ui,这是一个用 Node.js 编写的 Web 前端,可以帮助管理 crontab 文件。要安装和启动 crontab-ui 以供个人使用,我使用了以下命令。

# Make a backup
crontab -l > $HOME/crontab-backup
# Install Crontab UI
npm install -g crontab-ui
# Make a local database directory
mkdir $HOME/crontab-ui
# Start crontab-ui
CRON_DB_PATH=$HOME/crontab-ui crontab-ui

完成此操作后,只需将您的 Web 浏览器指向 http://localhost:8000,您将获得 crontab-ui Web 界面。首先要做的就是单击“从 Crontab 获取”以加载您可能拥有的任何现有作业。然后单击备份,以便您可以回滚您从现在开始所做的任何更改。

 

Image of Crontab-UI

(Kevin Sonney, CC BY-SA 4.0)

 

添加和编辑 cron 作业非常简单。添加名称、您要运行的完整命令和时间(使用 cron 语法),然后保存。作为奖励,您还可以捕获日志,并将作业状态邮件设置为您选择的电子邮件。

完成后,单击保存到 Crontab

我个人非常喜欢日志记录功能。使用 crontab-ui,您只需单击一个按钮即可查看日志,这在进行故障排除时非常有用。

我确实建议不要一直运行 crontab-ui,至少不要公开运行。虽然它确实具有一些基本身份验证功能,但它真的不应该暴露在您的本地机器之外。我不需要经常(再)编辑我的 cron 作业,所以我按需启动和停止它。

下次您需要编辑 crontab 时,请尝试 crontab-ui!

标签
User profile image.
Kevin Sonney 是一名技术专业人士、媒体制作人和播客主持人。作为一名 Linux 系统管理员和开源倡导者,Kevin 在 IT 行业拥有超过 25 年的经验,在开源领域拥有超过 15 年的经验。他目前在 elastic 担任 SRE。

3 条评论

嗯... 为什么 crontab 文件如此简单,我从一开始就没有任何问题

这在 Mac 上也适用吗?

那是一个看起来不错的程序!但我仍然更喜欢使用我已经使用多年的“vcron”。如果您想查看一下,可以在以下站点获取它。它是用 Tcl/Tk 编写的,只是一个放在您的路径上的脚本文件。

http://daniel.roche.free.fr/vcron/vcronGB.html

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.