2013-11-01 47 views
1

我的產品需要cronjob處理每個用戶發送給其他用戶的消息。這個cronjob被添加到服務器上的crontab中。一切正常。現在,一旦工作完成,是否有辦法從crontab中刪除已過期的cronjob條目?從crontab刪除過期的cron作業

由於消息數量很大,我的crontab不斷增長,所以我想清理舊的作業條目。任何完美的方式來實現它?

+2

如果是我,並且這是一個選項,我會將所有這些處理移動到不同的腳本中,只需讓cron調用該腳本,而不是搞亂大量的cronjob條目。這聽起來像是一個痛苦的祕訣。 –

+0

同意Christian Ternus。如果處理工作將來需要安排一段時間,最好使用'at'而不是cron。 'at'更適合將來一段時間安排一次性工作,而'cron'則更適合需要重複執行的工作。執行後,「at at」工作將自動從計劃中「消失」。 – mti2935

回答

0

至少在大多數Linux發行版中,有一個crontab命令,允許您爲用戶的crontab獲取和設置內容。你可以這樣使用它:

crontab -l > myfile 
... edit the file (removing the entry) 
crontab myfile 

然而,這是笨重和容易出錯的。一種更好的方法是將你的工作包裝在一個檢查條件的腳本中(例如一個標誌文件),以決定是否運行底層邏輯並操作這個標誌文件。