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 正是實現這個目標的解決方案。