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 脚本和命令。这可以是一天一次,在一个月的特定日期(然后,也许只有在星期一的情况下),或者在工作时间的每 15 分钟,从 09:00 到 17:00。

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

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

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

Anacron

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

anacron 系统旨在确保作业定期运行,而不是按计划运行。这意味着您可以将计算机关闭几天,仍然可以依靠 anacron 在您重新启动它时运行重要任务。Anacroncron 协同工作,因此它并非严格意义上是 cron 的替代品,但它是一种有意义的任务调度替代方法。许多系统管理员都配置了一个 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.