Board logo

标题: 使用 cron 进行自动维护(3) [打印本页]

作者: look_w    时间: 2018-5-23 17:56     标题: 使用 cron 进行自动维护(3)

替代 cron 的机制尽管 cron 确实很有用,但是您还应该了解可以替代它的两种机制。               
anacron如果系统常常关机或进入休眠状态(例如,如果使用 UNIX 笔记本计算机的话),那么可以考虑在系统中添加 anacron。anacron 与 cron 的相似之处在于,它也把作业安排在以后运行;但是,与 cron 不同,即使作业的预定运行时间已经过了,anacron 也会运行作业。                       
例如,如果安排在星期六运行文件系统备份,但是系统在星期五到星期一关机了,那么当系统在星期一重新启动时,anacron 会立即运行星期六的作业。与之相反,cron 仅仅检查现在是否应该运行作业;因此,如果在作业的预定运行时间系统是关闭的,就不运行作业。                       
anacron 的调度选项比 cron 少得多。它只能以整天的时间间隔调度作业,比如一天、7 天或 30 天;但是对于那些必须频繁且可靠地运行的作业,它是更好的选择。                       
另外,必须从 cron 启动 anacron。每当 anacron 运行时,它读取自己的配置文件。配置文件包含由作业及其频率(用天数表示)组成的配置对。如果作业在预定的时间没有运行,anacron 就运行此作业并记录运行作业的时间。运行完所有作业之后,anacron 退出。                       
在大多数 Linux 发行版上都可以找到 anacron,但是也很容易自己下载并构建源代码。访问  获得最新版本。                       
anacron 的主要配置文件可以在 /etc/anacron 中找到。可以像配置 cron 时那样设置环境变量,但是更简单:                       
1
2
3
4
SHELL=/bin/zsh
PATH=/usr/bin:/bin:/usr/local/bin
# format: frequency delay name job
1 10 day-to-day daily.chores.sh




第一个数字是周期,所以 1 表示每天运行一次,7 表示每 7 天运行一次,等等。第二个数字是延迟,也就是从 anacron 启动之后到执行这个作业之间等待的分钟数。如果把延迟字段设置为不同的值,就可以防止所有作业同时启动。名称 day-to-day 只是一个有帮助的昵称。配置行的其余部分指定作业;在这里,每天运行在指定路径中找到的 shell 脚本 daily.chores.sh 一次。                       
anacron 以手册页形式提供了出色的文档,还可以在网上找到关于 anacron 的提示。(请阅读我在 2007 年 10 月编辑的 )。anacron 适合 UNIX 爱好者和需要额外保障的系统管理员使用。                       
launchd:cron 的现代替代机制cron 确实是一种功能强大、值得信赖的实用程序,它的广泛流行就证明了这一点。Vixie cron 最近又有所改进,比如增加了简写方式 @reboot,进一步简化了管理。但是,cron 仍然有一些缺点:                       
为了克服这些缺点,Apple Computer 开发了一个统一的启动工具 launchd,它可以在引导时、根据需要和按照指定的时间间隔启动进程。实际上,在 Mac OS 10.4 Tiger 中 launchd 已经替代了 cron(和 init 以及用来引导和初始化系统的其他几个系统实用程序)。(Apple 在系统上保留了 cron,以便为用户提供方便,而且 Vixie cron 的调度选项更灵活)。Mac OS X 的引导速度很快确实可以归功于 launchd:它会在引导时列出要启动的程序,但是只在首次需要时执行程序。                       
launchd 是开放源码的,可以从  上它的主页获得源代码。目前,launchd 已经被移植到 FreeBSD 上,但是还没有移植到其他 UNIX 或 Linux 系统。但是,许多项目正在积极地实现与 launchd 等效的程序,所以简要地了解它的特性是有必要的:                       
launchd 由三个组件组成:launchd 守护进程本身;用来添加、修改和删除作业以及控制 launchd 的 launchctl 实用程序;一个或多个配置文件,每个文件定义一个或多个作业。由于它起源于 Mac OS X,launchd 配置文件只是简单的属性文件,可以用 Extensible Markup Language (XML) 表示。                       
简单地说,在 Mac OS X 上使用 launchd 的步骤如下(要监视一个目录中添加的文件并根据需要运行作业):                       
launchd 手册页包含大量信息;如果您是 Mac OS X 用户,还可以找到大量针对 launchd 的应用程序。一些聪明的开发人员正在把 launchd 迁移到更广泛的平台。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0