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