Cron 與 Anacron_ 如何在 Linux 上使用 Anacron 計劃任務


在 Linux 世界中,計劃任務是管理員需要定期執行的一項重要任務。這樣做是為了自動化執行例行任務的過程,並確保它們在正確的時間執行。Linux 中用於計劃任務的兩種常用工具是:cron 和 anacron。這兩種工具都具有自己獨特的特性和優勢。

在這篇博文中,我們將討論 cron 和 anacron 之間的區別,然後我們將演示如何使用 anacron 在 Linux 系統上計劃任務。

Cron 與 Anacron:有什麼區別?

在我們學習如何使用 Anacron 計劃任務之前,讓我們先看看 Cron 和 Anacron 之間的區別。

Cron

Cron 是一個基於時間的作業排程程式,執行在類 Unix 作業系統上。它用於安排作業在特定時間或間隔執行。Cron 非常適合安排需要定期執行的作業,例如每小時、每天、每週或每月。Cron 是一個強大而靈活的工具,但它有一個主要限制。它假設系統始終執行,如果系統關閉或重新啟動,任何計劃的作業都不會執行。

Anacron

另一方面,Anacron 是一種類似 cron 的工具,其設計用於處理並非始終執行的系統。Anacron 非常適合定期關閉或重新啟動的系統,例如筆記型電腦或桌上型電腦。Anacron 也可用於伺服器,但對於需要在特定時間執行的作業,它不如 cron 高效。

Anacron 透過跟蹤上次執行作業的時間來工作。然後,它根據配置檔案中指定的間隔計算作業下次應執行的時間。如果在作業可以執行之前系統關閉或重新啟動,Anacron 將在下一次系統啟動時執行該作業。

在本教程中,我們將介紹如何在 Ubuntu 上安裝和配置 Anacron,並演示如何使用 Anacron 安排作業。

使用 Anacron 計劃任務

既然我們已經討論了 cron 和 anacron 之間的區別,讓我們來看看如何使用 anacron 在 Linux 系統上計劃任務。我們假設您瞭解基本的 Linux 命令列。

步驟 1:安裝 Anacron

第一步是確保 Anacron 已安裝在您的 Linux 系統上。為此,開啟終端視窗並鍵入以下命令:

sudo apt-get install anacron

此命令將在基於 Debian 的系統上安裝 Anacron。如果您使用的是其他 Linux 發行版,則命令可能略有不同。

步驟 2:建立作業

下一步是建立一個我們想使用 Anacron 排程的作業。在這個例子中,我們將建立一個簡單的 bash 指令碼,它將當前日期和時間列印到一個檔案中。開啟文字編輯器並建立一個名為“myjob.sh”的新檔案。將以下幾行新增到檔案中:

#!/bin/bash echo "The current date and time is $(date)" >> /var/log/myjob.log

儲存檔案並透過鍵入以下命令使其可執行:

chmod +x myjob.sh

步驟 3:配置 Anacron

下一步是配置 Anacron 來執行我們的作業。Anacron 使用名為“anacrontab”的配置檔案來定義作業及其排程間隔。開啟終端視窗並鍵入以下命令來編輯 anacrontab 檔案:

sudo nano /etc/anacrontab

這將在 Nano 文字編輯器中開啟 anacrontab 檔案。“anacrontab”檔案具有以下格式:

period delay job-identifier command

讓我們仔細看看這些引數中的每一個:

  • 週期 - 週期引數指定兩次連續執行作業之間的時間(以天為單位)。例如,如果您想每天執行一次作業,則將週期設定為 1。如果您想每週執行一次作業,則將週期設定為 7。

  • 延遲 - 延遲引數指定系統啟動後 Anacron 在執行作業之前等待的時間(以分鐘為單位)。如果您想錯開作業的執行以避免在啟動過程中使系統過載,則此引數很有用。預設延遲為 5 分鐘。

  • 作業識別符號 - 作業識別符號引數是作業的唯一識別符號。Anacron 使用此引數來跟蹤哪些作業已經執行。每個作業的作業識別符號都應該是唯一的,並且不應包含任何空格。

  • 命令 - 命令引數是在作業執行時將執行的命令。這可以是任何有效的 shell 命令、指令碼或可執行檔案。

將以下行新增到 anacrontab 檔案的底部以定義我們的作業:

1 5 myjob /path/to/myjob.sh

此行定義了一個週期為 1 天,延遲為 5 分鐘的作業。作業識別符號為“myjob”,命令為“/path/to/myjob.sh”。這意味著 Anacron 將每天執行一次作業,如果在作業可以執行之前系統關閉或重新啟動,Anacron 將在下一次系統啟動時執行它,只要上次執行作業後至少經過 5 分鐘。

儲存 anacrontab 檔案並退出文字編輯器。

步驟 4:測試作業

最後一步是測試作業以確保其正常工作。為此,開啟終端視窗並鍵入以下命令:

sudo anacron -f

此命令將強制 Anacron 立即執行所有計劃的作業。Anacron 還將執行由於系統關閉或重新啟動而錯過的任何作業。

檢查 /var/log/myjob.log 檔案以確保作業正確執行。您應該在日誌檔案中看到一行包含當前日期和時間的行。

使用 Anacron 安排作業

要使用 Anacron 安排作業,您需要在 /etc/anacrontab 配置檔案中建立一個新條目。例如,假設您想安排一個作業,每 30 天刪除舊日誌檔案。您將以下行新增到配置檔案:

30 5 cleanup / usr/local/bin/cleanup-script.sh

此行指定 cleanup-script.sh 指令碼將在系統啟動後每 30 天延遲 5 分鐘執行。此作業的作業識別符號為“cleanup”。

新增條目後,儲存配置檔案並退出文字編輯器。

Anacron 將在下一次系統啟動時以及此後每 30 天自動執行該作業。如果在計劃時間內系統未開啟,Anacron 將在下一次系統開啟時執行該作業。

結論

在這篇博文中,我們討論了 cron 和 anacron 之間的區別,並演示瞭如何使用 Anacron 在 Linux 系統上計劃任務。Anacron 是一個用於在並非始終執行的系統(例如筆記型電腦或桌上型電腦)上計劃任務的有用工具。Anacron 確保即使系統關閉或重新啟動,只要配置檔案中指定的延遲已過去,作業也會執行。使用 Anacron,您可以自動化例行任務並確保它們在正確的時間執行,而無需擔心繫統是否正在執行。

更新於:2023年6月23日

761 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.