如何使用 Systemd 定時器取代 Cron

作為 Linux 用戶,您可能對 cron 並不陌生。多年來,它一直是一個基於時間的任務調度工具。現在,許多用戶發現 Systemd 的執行計時器正在逐漸取代 cron 的主導地位。

 本文將討論如何設定計時器並確保其在系統上正常運作的基礎知識。

作品?

如果您已經使用 Systemd 作為您的 init 系統(許多流行的 Linux 發行版都預設運行它,包括 Arch、Debian、Fedora、Red Hat 和 Ubuntu),您會看到計時器已在使用中。除了使用這個已安裝的功能外,您無需再做其他事情。

定時器列表

檢查電腦上是否存在計時器的最簡單方法是使用以下命令:

systemctl list-timers

你不必打出這張牌。

systemctl list-timers --all

此處的 –all 選項也會顯示非活動計時器。此系統上目前沒有非活動計時器。

您應該會發現類似下圖的輸出:

您可以看到每個計時器啟動的日期和時間、到該點的倒數計時、自觸發以來經過的時間量、計時器單元本身的名稱以及每個計時器單元啟動的服務。

所有計時器都必須與相應的服務配對。在下一節中,您將了解如何建立用於啟動「.service」檔案的「.timer」檔案。

建立新計時器

您可以透過放置 來建立一個新的計時器。計時器 客製化 “/etc/systemd/system/.”鴨子DNS 我最終得到了這樣的文字:

[單元] 描述=更新 duckdns 動態 DNS [計時器] OnCalendar=*-*-* 11:43:00 Persistent=true [安裝] WantedBy=timers.target

1. [Unit] 部分

文件中的「Description=…」選項告訴你計時器本身的名稱/描述。在本例中,「duckdns.timer」將透過告訴「duckdns.service」檔案來執行一系列命令來更新我的DNS。

您可以更改“Description=”後面的措辭,以表達您想要的任何內容。

2. [定時器] 部分

這裡的「OnCalendar=…」展示了一種指示計時器何時啟動的方法。 * – * – * 代表“年 – 月 – 日”,星號表示它將在之後的每一年、每一月、每一日運行。星號後面的時間表示計時器應該在一天中的什麼時間運作。

“Persistent=true” 表示如果錯過了上次的開始時間,計時器將自動運作。如果電腦在事件發生之前關閉,則可能會發生這種情況。這是可選的,但建議這樣做。

3. [安裝] 部分

最後,它表明 “WantedBy = times.target”systemd timers.target 該文件將用於 .timer文件中的這一行顯示了從一個文件到另一個文件的依賴關係鏈。您不應刪除或更改此行。

其他選項

您可以透過掃描頁面找到許多其他功能。 曼德曼 مع 系統定時器轉到“選項”部分以了解準確性、持久性和運行後選項。

定時器操作

使用語法啟動您創建的任何計時器 systemctl 啟用 و 系統控制啟動.

sudo systemctl enable duckdns.timer sudo systemctl start duckdns.timer

再次查看 systemctl list-timers 以查看計時器的運作情況。

您可以透過檢查計時器的服務檔案來判斷計時器是否如預期運作 系統控制狀態在這種情況下,您可以看到它按照預期在 11:43:00 運行。

結論

儘管許多第三方程序,包括 鴨子DNS 它們附帶腳本,可以根據需要進行更新,創建計時器 Systemd 這是一項很有用的技能。建立計時器 鴨子DNS 這裡沒有必要,但它展示了其他類型的計時器如何運作。 Systemd.

例如,這些知識對於建立和運行腳本很有用。 巴什 您自己的。您甚至可以使用它來更改當前計時器,以更好地適應您的偏好。此外,了解您的計算機的工作原理總是有益的,因為 Systemd 透過控制許多基本功能,這個拼圖可以幫助您更好地了解每天事件的進展。

感謝你的關注。祝你創建自己的計時器順利。

轉到頂部按鈕