首頁 > 軟體

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

2020-06-16 18:02:55

如果我們的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

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-04/115849.htm


IT145.com E-mail:sddin#qq.com