Linux 中怎麼設置計劃任務:cron 與 anacron

Linux 中怎麼設置計劃任務:cron 與 anacronLinux 中怎麼設置計劃任務:cron 與 anacron

cron 在 Linux 設置html

cron - 是一個用於運行計劃任務如系統備份、更新等的守護進程。它適合在那些 24X7 不間斷運行的機器如服務器上運行的計劃任務。linux

命令/腳本被寫在 cron 任務腳本中,它是在crontab 文件中被安排的。系統默認的 cromtab 文件是/etc/crontab ,可是每一個用戶也能夠建立本身的 cromtab 文件來在特定時間運行用戶定義的命令。shell

要建立一份我的crontab 文件,只要輸入:bash

$ crontab -e

Linux 中怎麼設置計劃任務:cron 與 anacronLinux 中怎麼設置計劃任務:cron 與 anacron

如何在 Linux 中設置 anacron服務器

anacron 用於以天爲單位的頻率運行命令。它的工做與 cron 稍有不一樣,它假設機器不會一直開機ide

cron 也適合在那些不會 24X7 運行如筆記本以及桌面電腦的機器上運行每日、每週以及每個月的計劃任務(LCTT 譯註:不適合按小時、分鐘執行任務)。spa

假設你有一個計劃任務(好比備份腳本)要使用 cron 在天天半夜運行,也許你以及睡着,那時你的桌面/筆記本電腦已經關機。你的備份腳本就不會被運行。.net

然而,若是你使用 anacron,你能夠確保在你下次開啓桌面/筆記本電腦的時候,備份腳本會被執行。日誌

anacron 如何在 Linux 工做htm

anacron 任務被列在 /etc/anacrontab 中,任務可使用下面的格式(anacron 文件中的註釋必須以 # 號開始)安排。

period   delay   job-identifier   command

從上面的格式中:

  • period - 這是任務的頻率,以天來指定,或者是@daily@weekly@monthly 表明天天、每週、每個月一次。你也可使用數字:1 - 天天、7 - 每週、30- 每個月,或者N - 幾天。
  • delay - 這是在執行一個任務前等待的分鐘數。
  • job-id - 這是寫在日誌文件中任務的獨特名字。
  • command - 這是要執行的命令或 shell 腳本。

要瀏覽示例文件,輸入:

$ ls -l /var/spool/anacron/
total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly

這是實際發生的:

  • anacron 會檢查任務是否已經在 period 字段指定的時間被被執行了。若是沒有,則在等待 delay 字段中指定的分鐘數後,執行 command字段中指定的命令。
  • 一旦任務被執行了,它會使用 job-id (時間戳文件名)字段中指定的名稱將日期記錄在 /var/spool/anacron 目錄中的時間戳文件中。

如今讓咱們看一個例子。這個會天天運行 /home/aaronkilik/bin/backup.sh 腳本:

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

當機器在 backup.sh 指望被運行時是關機的,anacron 會在機器開機十分鐘以後運行它,而不用再等待 7 天。

這裏有兩個你應該理解的 anacrontab 文件的重要變量:

  • START_HOURS_RANGE - 這個設置任務開始運行的時間範圍(也就是任務只在這幾個小時內運行)。
  • RANDOM_DELAY - 這定義添加到用戶定義的任務延遲的最大隨機延遲(默認爲 45)。

這是你的 anacrontab 文件可能看上去的樣子。

Anacron – /etc/anacrontab

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly
@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

下面是 cron 以及 anacron 的比較,幫助你理解什麼時候用他們其中一個。

cron anacron
它是守護進程 它不是守護進程
適合服務器 適合桌面/筆記本電腦
可讓你以分鐘級運行計劃任務 只能讓你以天爲基礎來運行計劃任務
關機時不會執行計劃任務 若是計劃任務到期,機器是關機的,那麼它會在機器下次開機後執行計劃任務
普通用戶和 root 用戶均可以使用 只有 root 用戶可使用(使用特定的配置啓動普通任務)

cron 和 anacron 主要的區別在於 cron 能在那些持續運行的機器上有效地運行,而 anacron 是針對那些會在一天內或者一週內會關機的機器。

本文地址:http://www.linuxprobe.com/cron-anacron-work.html

相關文章
相關標籤/搜索