Linux
每 130 秒執行一次的 CRON 作業
是否可以創建一個可以每 130 秒或 2 分 10 秒執行一次的 CRON 作業。
如果您使用的是 systemd 發行版,則可以使用 systemd 計時器來獲得此級別的時間解析度。根據您的案例,您可以將其用作 delta-t(例如,自啟動後每隔 x 秒)或使用掛鐘時間(例如,在 00:00:10、00:02:10 等)進行配置。
簡而言之,您將創建 2 個文件。
- 第一個是 .timer 文件,在此處描述。這將設置計時器事件的時間並配置時間事件發生時會發生什麼。有許多標準需要定義 - 例如 - 您是否希望它在啟動時立即執行,然後每 130 秒執行一次?如果您處於較低的執行級別,您希望它執行嗎?如果遇到錯誤,您希望它繼續執行嗎?可以說,Systemd 比使用 init 文件和 cron 作業的舊方法要復雜得多。但是,使用它而不是 cron 將解決您的時間問題。
- 第二個文件通常是由計時器服務呼叫的 .service 文件。在此文件中,您將定義 cron 作業的功能 - 一個簡單的命令或呼叫另一個腳本以允許更複雜的任務。此服務文件通常會設置為“oneshot”。有關更多詳細資訊,請參見此處。
這些文件應該被複製到 /etc/systemd/system/ 並且您將執行以下命令來啟用/啟動計時器服務:
systemctl enable mycronjob.timer systemctl start mycronjob.timer
您可以使用 journalctl 來查看/調試您的實現。有關更多資訊,請參閱archwiki 討論。
cron 提供的最細粒度是 1 分鐘。我想你可以每 1 分鐘執行一次你的工作,讓它確定它是否需要在下一分鐘之前執行,等待正確的時間然後繼續。
- 以130 為模計算自午夜以來的秒數。
- 從 130 中減去這個數字
- 如果答案小於 60,請等待該秒數並繼續。
- 如果答案是 130 立即繼續