Linuxcron 系统是一个经过时间考验的成熟技术。然而,它并不总是系统自动化的正确工具。有一些其他的开源项目,可以与cron ,或者代替cron 。
Linux在命令
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 定时器代替 cronjob》中做了示范。
Anacron
Cron 专注于在特定时间运行一个命令。这对一个从不休眠或断电的服务器来说很有效。然而,对于笔记本电脑和台式工作站来说,有意或无意地时常关闭电脑是很常见的。当电脑不开机时, ,所以重要的工作(如备份数据)被跳过。cron
anacron 系统的设计是为了确保工作定期运行,而不是按计划进行。这意味着你可以让电脑关机几天,当你再次开机时,仍然可以依靠anacron 来运行重要的任务。Anacron 与cron 同步工作,所以严格来说,它不是它的替代品,但它是一种有意义的调度任务的替代方法。许多系统管理员配置了一个cron 工作,以便在深夜在远程工作人员的计算机上备份数据,但却发现在过去六个月中只运行了一次。Anacron 确保重要的工作在可以发生的时候发生,而不是在预定的时候发生。
自动化
计算机和技术是为了让生活更美好,工作更轻松。Linux为其用户提供了很多有用的功能,以确保重要的操作系统任务得到完成。看看有什么可用的功能,并开始为你自己的任务使用这些功能。