2013-11-01 48 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 

然而,这是笨重和容易出错的。一种更好的方法是将你的工作包装在一个检查条件的脚本中(例如一个标志文件),以决定是否运行底层逻辑并操作这个标志文件。