下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux下at与cron自动化工作的异同日期:2009-03-31 来源:IT专家网 作者:spike_zheng 在Linux操作系统中,管理员可以通过一定的手段要求系统的工作在一个特定的时间、日期或者当系统平均负荷比较低的时候自动执行某些特定的工作。通常情况下,可以通过at与cron两个命令来实现自动化作业。而且这两个命令无论是管理员用户还是普通用户都可以使用。如root管理员可以使用自动化的工作管理来执行定期的数据备份、监控系统稳定性与性能参数等等;而且普通用户也可以利用这项机制来要求系统自动执行工作,如自动执行某个脚本等等。 虽然这两个命令都可以达到自动化工作的要求,但是他们有不少的
2、差异。系统管理员要根据这两个命令的各自特性,并结合自己所需要达到的目的,来选择合适的实现方式。一、at命令权限控制。At命令主要用来安排在某个特定时间执行特定的工作。当系统管理员或者用户有安排在某个时间执行某个脚本的需求时,可以利用at指令来实现这个需求。但是,at与cron命令不同,系统设计者对于at命令提供了一种特殊的保护机制。操作系统使用了at.allow与at.deny两个文件来限制哪些用户可以使用at指令,哪些用户则不行。如上图中,这个两个文件默认保存在/etc文件夹下。这两个存取控制文件的格式是在每一行设置一个用户名,而且两个文件中都不允许有空格符的存在。如果系统管理员出于安全的考
3、虑,需要限制用户使用at命令,则可以在at.deny控制文件中输入对应的用户名字即可。修改存取控制文件后,马上生效。即不需要重新启动系统进程这个限制才会生效。而且对于先前已经设置的at指令,也会失效。这主要是因为这个存取控制文件的生效时间是系统在执行at指令的时候。另外需要注意的是,系统管理员不能够利用这两个文件来限制root帐户的权利。Root帐户随时都可以执行at指令,即使这个帐户已经被列入了at.deny存取控制文件的黑名单。也许心细的读者会发现,如果一个帐户同时存在与这两个文件中。或者说系统有A、B两个用户。在at.allow帐户中设置为只有A允许使用at指令;而在at.deny存取控
4、制文件中又设置只有A用户禁止使用at命令。那么最终的结果会是如何呢?会不会有相互矛盾的地方呢?系统在这里主要是借鉴了优先级的控制手段来避免这种相互矛盾的情况出现。如当操作系统中管理员同时定义了这两个文件,那么系统就会忽视at.deny存取控制文件的存在。也就是说,此时操作系统只考虑at.allow文件中的内容。就上面两个例子来说,系统将运行A用户执行at命令(包括root用户)。其他用户将无权执行at命令。而对于cron自动化命令就没有这方面的限制。这主要是因为这两个命令是由不同的设计者实现的。这也是Linux操作系统的一个特性,它是由一个个小的命令所搭建而成的一个操作系统。类似的情况在Lin
5、ux系统中还有很多。这也是他们两个命令的最大差异所在。二、使用时机不同。Cron命令是一个系统进程。这个命令可以依据系统管理员所设定的时间、日期或者其他的组合方式来重复性的执行某些特定的工作。当然其工作前期是系统必须在持续开机的情况下。如果在工作排定的时间,恰巧此时系统出现了故障而关机,那么这项指定的工作就不会被执行。但是它会在下一个时间段内执行。也就是说,中间某项工作因为一些特殊的原因没有完成的话,则不影响其后续的执行。 其实,说了如上这么多内容,笔者想强调的却只有三个字,即重复性。利用cron命令后,系统会根据一定的周期重复执行管理员所指定的代码或者命令。而at指令则是安排在特定的时间来执
6、行某项工作。简单的说,利用cron命令可以设定一些重复性的工作,如重要数据的备份。但是对于at命令来说,其执行的动作是一次性的。这次执行完毕后下次将不会再被自动执行,除非系统管理员再进行设置。如需要在一个小时后在系统中建立一个帐户,此时就需要采用at命令。而不适宜采用crom命令。因为同一个帐户只需要建立一次即可,而不必每隔一个小时建立一次。所以at命令指定的作业只执行一次,而cron指定的命令则会根据一定的周期重复执行。这是这两个命令的最本质的区别。这要求系统管理员根据需求的不同,现在合适的实现方式。如果某些任务是周期性的,如需要周期性的利用脚本备份数据库的数据或者周期性的删除临时文件,则就
7、需要采用cron命令。在Linux操作系统中,最典型的cron应用就是系统会每隔几分钟就去检查一下邮箱服务器看看是否有新的邮件。而对于那些不需要重复执行的,可能只需要在某个特定的时刻执行一次的任务,则就需要采用at命令。如因为系统维护的需要,要在下午三点强制关闭网络连接,则就可以使用at命令。三、其他细微的差异。除了以上两个重大的差异外,这两个命令还有一些稍微的区别。如at命令是基于时间点来执行的,也就是说在几点几时或者在多少时间后执行。而cron命令则是基于时间表来执行相关命令的。时间点与时间表或许听起来没有多大不同。其实他们的差异也是一个天一个地,非常大。如果利用一个形象的比喻,时间表就好
8、像是一本日历;而时间点则是日历中的一个特定的日期。时间点过了就过来,则时间表则可以重复的设定。这个差异就决定了为什么at命令只被执行一次,而crom命令则可以被周期性的执行。 除此之外,他们在daemon上也有区别。At命令用的其实就是atd这个daemon。所以当系统管理员使用at指令的时候需要记得启动atd这个daemon。否则的话,这个at指令将无法正常运行。而cron命令用的则是cron守护进程。这里的daemon指的是Linux操作系统的守护进程。操作系统的后台进程,通常具有root安全级别许可权。守护程序通常隐藏在后台,直至被某个事件(例如特定的时间或日期、时间间隔、收到电子邮件等
9、)触发后它才会进入活动状态。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。不同他们也有一个共同点,即修改或者建立相关的配置后,不用重新启动守护进程就可以生效的。如利用at命令建立了一个重新启动的任务后,这个指令将马上生效。四、At命令的常见应用有哪些?在实际工作中系统工程师可能会比较喜欢使用crom命令,而对于at命令却忽视了。其实这个at命令虽然只执行一次,但是在操作系统维护中仍然具有很大的实用价值。如系统管理员更进行了某项维护,需要操作系统重新启动后才生效。但是现在这个Linux服务器其他用户在使用,现在重新启动的话不怎么合适,会给用户带来一定的损失。故系统工程师决定在晚上12点重新启动。那是否是说系统工程师需要驻守到晚上12点呢?答案当然是否定的。系统管理员只需要通过at命令指定系统在晚上12点自动重新启动即可。所以说at命令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湛江市美术中学招聘临聘教师8人备考题库及参考答案详解1套
- 2025年云南省玉溪市江川区教育体育系统公开招聘毕业生38人备考题库及答案详解1套
- 2025年宜宾市消防救援局公开招聘政府专职消防员35人备考题库有答案详解
- 2025年涟源市市直医疗卫生机构公开招聘专业技术人员69人备考题库及参考答案详解
- 2025年农商行招聘1065人备考题库及答案详解(易错题)
- 2025年浙商银行衢州分行招聘备考题库完整答案详解
- 2025年厦门市集美区蔡林学校数学非在编教师招聘备考题库及一套答案详解
- 2025年南京古生物所非在编项目聘用人员(劳务派遣)招聘备考题库完整参考答案详解
- 晋江招聘20名政府专职消防员备考题库及一套参考答案详解
- 2025年浙江大学医学院唐修文课题组招聘备考题库(含答案详解)
- (甘肃二诊)2025年甘肃省高三月考试卷(4月)物理试卷(含官方答案)
- 统编四年级上册语文期末测试卷(含答案)
- 2024【合伙协议】合伙人协议合同范本
- 仓库成品出货培训
- 2024年重庆市中考数学真题卷(A)及答案解析
- 2025年电工(技师)考试100题及答案
- 《地表水监测技术规范(征求意见稿)》编制说明
- 培训初中地理教师课件
- 高速公路涉路施工许可技术审查指南(一)
- 开工“第一课”安全培训课件
- 毕业登记表上的论文主要内容范本
评论
0/150
提交评论