歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:Linux中的anacron命令

Linux系統入門學習:Linux中的anacron命令

日期:2017/2/28 14:02:50   编辑:Linux教程

如果我們的Linux主機是24全天全年的處於開機狀態,我們只需要atd與crond這兩個服務即可,如果我們的服務器並非24小時無間斷的啟動,那麼我們就需要anacron的幫助了。

anacron並不能取代cron去運行某項任務,而是以天為單位或者是在啟動後立刻進行anacron的動作,它會去偵測停機期間應該進行但是並沒有進行的crontab任務,並將該任務運行一遍後,anacron就會自動停止了。

anacron會以一天、七天、一個月周期去偵測系統中未進行的crontab任務,因此對於某些特殊的使用環境非常有幫助。anacron會去會去分析現在的時間與時間記錄檔所記載的上次運行anacron的時間,兩者比較厚若發現有差異,也就是在某些時刻沒有進行crontab,那麼此時anacron就會開始執行未運行的crontab了。所以anacron也是聽過crontab來運行的,因此anacron運行的時間通常由兩個,一個是系統啟動期間運行,一個是寫入crontab的排程中,這樣才能夠在特定時間分析系統未進行的crontab工作。我們可以使用ll /etc/cron*/*ana*的方式來查看anacron的偵測時間。但是我們仔細分析該文件的話,發現它主要是執行anacron命令。

anacron命令的語法如下:

(1)-s開始連續的運行各項工作,會一句時間記錄當的數據判斷是否進行。

(2)-f強制進行,而不去判斷時間登錄檔的時間戳。

(3)-n立即進行未進行的任務,而不延遲等待時間。

(4)-u僅升級時間記錄當的時間戳,不進行任何工作。

而anacron的配置文件是/etc/anacrontab,而它的很多內容則是在/var/spool/anacron裡面保存。

當anacron下達anacron -s cron.daily時,它會有如下的步驟:

(1)由/etc/anacrontab分析到cron.daily這項工作名稱的天數為一天。

(2)由/var/spool/anacron/cron.daily取出最近一次運行anacron的時間戳。

(3)把取出的時間戳與當前的時間戳相比較,如果差異超過了一天,那麼就准備進行命令。

(4)若准備進行命令,根據/etc/anacrontab的配置,將延遲65分鐘。

(5)延遲時間後,開始運行後續命令,也就是run-parts /etc/cron.daily這串命令。

(6)運行完畢後,anacron程序結束。

Linux計劃任務(at batch crontab anacron) http://www.linuxidc.com/Linux/2013-03/81584.htm

Copyright © Linux教程網 All Rights Reserved