Linux 中 cron 的 4 种替代方案

还有一些其他的开源项目可以与 cron 结合使用,或者替代 cron。
54 位读者喜欢这篇文章。
Clocks

Matteo Ianeselli。由 Opensource.com 修改。CC-BY-3.0 许可。

Linux cron 系统 是一项经过时间考验和验证的技术。然而,它并不总是系统自动化的正确工具。还有一些其他的开源项目可以与 cron 结合使用,或者替代 cron

Linux at 命令

Cron 旨在用于长期重复的任务。您安排一个作业,它会从现在开始以固定的时间间隔运行,直到计算机退役。有时您只想安排一个一次性命令在您恰好不在电脑旁时运行。为此,您可以使用 at 命令。

at 的语法比 cron 语法简单和灵活得多,并且它具有交互式和非交互式调度方法(因此如果您真的想这样做,可以使用 at 创建 at 作业。)

$ echo "rsync -av /home/tux/ me@myserver:/home/tux/" | at 1:30 AM

它感觉很自然,易于使用,而且您不必清理旧作业,因为它们一旦运行就会被完全遗忘。

阅读更多关于 at 命令 的信息以开始使用。

Systemd

除了管理计算机上的进程外,systemd 还可以帮助您调度它们。与传统的 cron 作业类似,systemd 定时器可以在指定的时间间隔触发事件,例如 shell 脚本和命令。这可以是每月特定日期的每天一次(然后,可能仅在星期一的情况下),或者在工作时间的 09:00 到 17:00 之间每 15 分钟一次。

定时器还可以做一些 cron 作业无法做到的事情。

例如,定时器可以触发脚本或程序在事件发生之后 的特定时间量运行,例如启动、启动、前一个任务完成,甚至是由定时器本身调用的服务单元的前一次完成!

如果您的系统运行 systemd,那么您实际上已经在技术上使用 systemd 定时器了。默认定时器执行诸如轮换日志文件、更新 mlocate 数据库、管理 DNF 数据库等琐碎的任务。创建您自己的定时器很容易,正如 David Both 在他的文章 使用 systemd 定时器代替 cronjobs 中所演示的那样。

Anacron

Cron 专门用于在特定时间运行命令。这对于从不休眠或关机的服务器来说效果很好。但是,笔记本电脑和台式工作站偶尔有意或无意地关闭计算机是很常见的。当计算机未开机时,cron 不会运行,因此重要的作业(例如备份数据)会被跳过。

anacron 系统旨在确保作业定期运行,而不是按计划运行。这意味着您可以让计算机关闭几天,并且仍然可以依靠 anacron 在您重新启动计算机时运行基本任务。Anacroncron 协同工作,因此它并非严格意义上的替代方案,但它是调度任务的一种有意义的替代方法。许多系统管理员都配置了一个 cron 作业来在远程工作人员的计算机上深夜备份数据,但最终发现该作业在过去六个月中只运行了一次。Anacron 确保重要的作业在可以运行的时候有时 发生,而不是在计划的时间从不 发生。

阅读更多关于 使用 anacron 获得更好的 crontab 的信息。

自动化

计算机和技术的目的是让生活更美好,工作更轻松。Linux 为其用户提供了许多有用的功能,以确保重要的操作系统任务得以完成。了解一下可用的功能,并开始将这些功能用于您自己的任务。

接下来阅读什么
标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时从事这两个行业。

2 条评论

别忘了还有 systemd-cron,它是标准 cron 的替代品。该软件包使用古老的 crontab 语法为您生成新的 systemd 定时器。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.