Linux 中怎麼設定計劃任務:cron 與 anacron
導讀 | 在本篇中,我們會解釋 cron 和 anacron,並向你展示如何在 中設定 anacron。我們也會比較這兩個工具。 |
cron - 是一個用於執行計劃任務如系統備份、更新等的守護程式。它適合在那些 24X7 不間斷執行的機器如伺服器上執行的計劃任務。
/ 被寫在 cron 任務 中,它是在 crontab 檔案中被安排的。系統預設的 cromtab 檔案是 /etc/crontab ,但是每個使用者也可以建立自己的 cromtab 檔案來在特定時間執行使用者定義的 。
要建立一份個人 crontab 檔案,只要輸入:
$ crontab -e
anacron 用於以天為單位的頻率執行命令。它的工作與 cron 稍有不同, 它假設機器不會一直開機。
cron 也適合在那些不會 24X7 執行如筆記本以及桌面電腦的機器上執行每日、每週以及每月的計劃任務(LCTT 譯註:不適合按小時、分鐘執行任務)。
假設你有一個計劃任務(比如備份指令碼)要使用 cron 在每天半夜執行,也許你以及睡著,那時你的桌面/膝上型電腦已經關機。你的備份指令碼就不會被執行。
然而,如果你使用 anacron,你可以確保在你下次開啟桌面/膝上型電腦的時候,備份指令碼會被執行。
anacron 任務被列在 /etc/anacrontab 中,任務可以使用下面的格式(anacron 檔案中的註釋必須以 # 號開始)安排。
period delay job-identifier command
從上面的格式中:
- period - 這是任務的頻率,以天來指定,或者是 @daily 、 @weekly、 @monthly 代表每天、每週、每月一次。你也可以使用數字: 1 - 每天、 7 - 每週、 30- 每月,或者 N - 幾天。
- delay - 這是在執行一個任務前等待的分鐘數。
- job-id - 這是寫在日誌檔案中任務的獨特名字。
- command - 這是要執行的命令或 指令碼。
要瀏覽示例檔案,輸入:
$ 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 是針對那些會在一天內或者一週內會關機的機器。
如果你還知道其他方式,請在評論欄中與我們分享。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2980455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在 Linux 中怎麼使用 cron 計劃任務Linux
- linux基礎(四)——任務排程cron和anacronLinux
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- linux定時任務cron配置Linux
- linux中crontab計劃任務怎麼刪除?linux中crontab計劃任務的刪除方法Linux
- 排查linux 定時任務cron crontabLinux
- 使用at和cron實現任務計劃
- Golang——Cron 定時任務Golang
- 『學了就忘』Linux系統定時任務 — 89、任務排程工具anacronLinux
- 在 Linux 中安全且輕鬆地管理 Cron 定時任務Linux
- linux計劃任務每五分鐘或每天執行一次怎麼新增設定Linux
- Linux 任務計劃管理Linux
- 如何在Linux中加入cron任務Linux
- win10設定計劃任務時提示沒有許可權怎麼辦Win10
- 伺服器怎麼設定寶塔皮膚計劃任務備份網站伺服器網站
- 在linux上定期執行命令、指令碼(cron,crontab,anacron)Linux指令碼
- win10計劃任務如何關閉_win10怎麼禁用計劃任務Win10
- Laravel Cron 定時任務 “跳坑” 點Laravel
- linux系統怎麼新增每天定時任務? linux系統新增定時任務的教程Linux
- 論linux下計劃任務示例Linux
- GO的定時器Timer 和定時任務cronGo定時器
- win10如何建立任務計劃_win10電腦怎麼設定定時任務Win10
- Linux 學習筆記--任務計劃 crontabLinux筆記
- Linux系統中延時任務及定時任務Linux
- 程式與計劃任務管理(at 及 crontab)
- linux定時任務的設定 crontab 配置指南Linux
- Linux 定時任務Linux
- Linux | 定時任務Linux
- Linux中如何實現定時任務Linux
- win10 64位計劃任務沒啟動怎麼辦_win10 64位計劃任務如何啟動Win10
- java 定時任務 quartz 時間表示式Cron總結Javaquartz
- 在Linux中,任務計劃格式中,前面5個數字分表表示什麼含義?Linux
- 檔案許可權與計劃任務
- 分散式系統解耦模式:用事件代表時間觸發Cron計劃任務分散式解耦模式事件
- 【親測有效】【定時】定時任務 @Scheduled(cron = "0 0 21 * * ?") 【Scheduled失效】
- Linux crontab 定時任務Linux
- .NetCore Hangfire任務計劃NetCore
- 在Linux中,如何備份某個使用者的任務計劃?Linux