使用Plan模組在Python中編寫crontab檔案


首先,讓我們瞭解一下crontab檔案是什麼。Cron是一個軟體實用程式,可以幫助我們在基於Unix的系統上安排任務。基本上,您可以定期執行分配的任務,例如,在一天結束時進行自動系統備份,在特定時間自動關機或將模式設定為勿擾等等。

cron中的這些“任務”通常定義在一個名為crontab的檔案中,該檔案基本上是一個包含要執行的命令的文字檔案。

現在讓我們學習如何使用plan模組在Python中編寫這些crontab檔案!

入門

在進入實現部分之前,讓我們首先了解Cron語法。Cron語法由5個不同的欄位組成,這些欄位用空格分隔。

Minute Hour Day Month Day_of_week
Minute (0-59), Hour (0-23), Day (1-31), Month (1-12) and Day of week (0-6). 

您還可以使用逗號分隔值幷包含多個值。使用連字元來驗證範圍。星號表示所有可能的值,最後斜槓表示所有內容。

例如,`0 15 3,6 * *`告訴cron在每個月的第3天和第6天下午3點執行任務。

安裝Python Plan模組

好了,現在您瞭解了cron的工作原理,讓我們開始安裝所需的模組plan。

此模組沒有預先打包在Python中。因此,我們將使用pip包管理器下載並安裝它。

要安裝plan模組,請使用以下命令:

pip install plan

現在,我們可以使用以下命令將其匯入到我們的指令碼中:

from plan import Plan

您已準備好開始建立cron檔案了。

使用plan模組建立crontab

讓我們從為將儲存一組cron的類建立例項開始。

cron = Plan()

接下來,您可以繼續定義要自動執行的函式、指令碼或命令。

讓我們假設我們有一個指令碼,每5小時自動傳送待辦事項提醒郵件。假設此指令碼位於“/projects/scripts/automation.py”。

我們還希望它每4小時列印一次“hello”。我們該如何做到這一點呢?

我們有不同的方法可以做到這一點。

我們可以使用`cron.command()`函式或`cron.script()`函式。這兩個命令都有助於實現我們的目標。

cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")

現在,讓我們在主函式中使用`cron.run()`命令執行這些命令。

If __name__ == "__main__":
	cron.run()

就是這樣!您現在已經自動化了步驟,並定義了指令碼執行的固定時間。

示例

這是完整的程式:

from plan import Plan

cron = Plan()
cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")
If __name__ == "__main__":
	cron.run()

結論

您現在瞭解瞭如何在固定時間自動執行指令碼。使用它,您可以自動化專案中的拼寫檢查,在特定時間自動化系統備份,甚至每天獲取專案的覆蓋率報告。

更新於:2023年8月31日

82 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告