二、使用时机不同。
Cron命令是一个系统进程。这个命令可以依据系统管理员所设定的时间、日期或者其他的组合方式来重复性的执行某些特定的工作。当然其工作前期是系统必须在持续开机的情况下。如果在工作排定的时间,恰巧此时系统出现了故障而关机,那么这项指定的工作就不会被执行。但是它会在下一个时间段内执行。也就是说,中间某项工作因为一些特殊的原因没有完成的话,则不影响其后续的执行。
其实,说了如上这么多内容,笔者想强调的却只有三个字,即重复性。利用cron命令后,系统会根据一定的周期重复执行管理员所指定的代码或者命令。而at指令则是安排在特定的时间来执行某项工作。简单的说,利用cron命令可以设定一些重复性的工作,如重要数据的备份。但是对于at命令来说,其执行的动作是一次性的。这次执行完毕后下次将不会再被自动执行,除非系统管理员再进行设置。如需要在一个小时后在系统中建立一个帐户,此时就需要采用at命令。而不适宜采用crom命令。因为同一个帐户只需要建立一次即可,而不必每隔一个小时建立一次。
所以at命令指定的作业只执行一次,而cron指定的命令则会根据一定的周期重复执行。这是这两个命令的最本质的区别。这要求系统管理员根据需求的不同,现在合适的实现方式。如果某些任务是周期性的,如需要周期性的利用脚本备份数据库的数据或者周期性的删除临时文件,则就需要采用cron命令。在Linux操作系统中,最典型的cron应用就是系统会每隔几分钟就去检查一下邮箱服务器看看是否有新的邮件。而对于那些不需要重复执行的,可能只需要在某个特定的时刻执行一次的任务,则就需要采用at命令。如因为系统维护的需要,要在下午三点强制关闭网络连接,则就可以使用at命令。