1
我的產品需要cronjob處理每個用戶發送給其他用戶的消息。這個cronjob被添加到服務器上的crontab中。一切正常。現在,一旦工作完成,是否有辦法從crontab
中刪除已過期的cronjob條目?從crontab刪除過期的cron作業
由於消息數量很大,我的crontab不斷增長,所以我想清理舊的作業條目。任何完美的方式來實現它?
我的產品需要cronjob處理每個用戶發送給其他用戶的消息。這個cronjob被添加到服務器上的crontab中。一切正常。現在,一旦工作完成,是否有辦法從crontab
中刪除已過期的cronjob條目?從crontab刪除過期的cron作業
由於消息數量很大,我的crontab不斷增長,所以我想清理舊的作業條目。任何完美的方式來實現它?
至少在大多數Linux發行版中,有一個crontab命令,允許您爲用戶的crontab
獲取和設置內容。你可以這樣使用它:
crontab -l > myfile
... edit the file (removing the entry)
crontab myfile
然而,這是笨重和容易出錯的。一種更好的方法是將你的工作包裝在一個檢查條件的腳本中(例如一個標誌文件),以決定是否運行底層邏輯並操作這個標誌文件。
如果是我,並且這是一個選項,我會將所有這些處理移動到不同的腳本中,只需讓cron調用該腳本,而不是搞亂大量的cronjob條目。這聽起來像是一個痛苦的祕訣。 –
同意Christian Ternus。如果處理工作將來需要安排一段時間,最好使用'at'而不是cron。 'at'更適合將來一段時間安排一次性工作,而'cron'則更適合需要重複執行的工作。執行後,「at at」工作將自動從計劃中「消失」。 – mti2935