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
在您重新启动计算机时运行基本任务。Anacron
与 cron
协同工作,因此它并非严格意义上的替代方案,但它是调度任务的一种有意义的替代方法。许多系统管理员都配置了一个 cron
作业来在远程工作人员的计算机上深夜备份数据,但最终发现该作业在过去六个月中只运行了一次。Anacron
确保重要的作业在可以运行的时候有时 发生,而不是在计划的时间从不 发生。
阅读更多关于 使用 anacron 获得更好的 crontab 的信息。
自动化
计算机和技术的目的是让生活更美好,工作更轻松。Linux 为其用户提供了许多有用的功能,以确保重要的操作系统任务得以完成。了解一下可用的功能,并开始将这些功能用于您自己的任务。
2 条评论