使用 Anacron 处理 Linux 关机问题


Linux? 最初使用 Cron 自动执行常规系统维护,比如替换日志文件和更新垃圾信息过滤规则。这种方法可以很好地服务于全天候运行的服务器和其他系统。但是,如果要在不使用计算机时关闭它以节约资源(常见于台式机和笔记本系统),那么则不能运行 Cron。如果不能定期运行 Cron,将会生成大量的日志文件并引发其他问题。Anacron 实用工具提供了一种解决方案,支持计算机在每次开机后运行常规的维护作业,即使这些开机时间是不固定的。

问题

如果在台式机或笔记本电脑中运行 Linux(或大多数其他 UNIX 系统),那么可能会经常关闭系统。确实,有些系统在一天中关机的时间也许要比开机的时间还长。这可以帮助减少电费。对于笔记本电脑来说,如果在旅途中没有电源插座,经常关机有助于延长电脑的使用时间。不幸的是,这种经常性地关机行为会为 Linux 系统带来问题,因为 Linux 使用称为 Cron 的实用工具在后台运行日常的维护作业。当这些作业停止运行时,就会引发问题,时间一长,系统的性能就会越来越低。

Cron 的设计目的是在无人值守的情况下,在指定的时间启动程序。一般来说,共有两种类型的 Cron 作业(即由 Cron 运行的程序):系统 Cron 作业,由系统运行,执行系统维护任务;另一种是 用户 Cron 作业,由用户创建,用于执行用户任务。对于这两种作业而言,系统 Cron 作业更加重要一些。这些作业可能包括清除 /tmp 中的陈旧文件、替换日志文件、更新垃圾邮件过滤规则,以及更新 locate 数据库。

大部分 Linux 系统在 /etc 中包含了一系列与 Cron 有关的子目录。/etc/crontab 文件指定 Cron 应该将哪些作业作为系统 Cron 作业运行。通常来讲,该文件告诉 Cron 分别按照每小时、每天、每周和每月的时间间隔运行位于 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 中的脚本。运行这些作业的精确时间在 /etc/crontab 中指定。对于每天运行和以更长时间间隔运行的作业,运行时间通常为早晨。问题在于,台式机和笔记本系统很可能在这些时间是关闭的。

当 Cron 作业无法运行时,各种问题就随之而来。具体问题取决于本来应当运行的 Cron 作业,但举例来说,问题包括日志文件变大,/tmp 目录变乱,以及数据库过期问题,这些数据库用于存储可用软件更新或本地系统命令的位置。

显然,保持运行 Cron 作业非常重要。如果需要经常关闭某个系统,应当寻找一种方法来避免这些问题。Anacron 正是实现这个目标的解决方案。

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容