从 crontab 中删除过期的 cron 作业

3
我的产品需要为用户发送给其他用户的每条消息进行cronjob处理。这个cronjob会被添加到服务器上的crontab中。一切都运作良好。现在,任务完成后,有没有办法从crontab中删除已过期的cronjob条目?
由于消息数量巨大,我的crontab不断增长,因此我想清理旧的作业条目。有没有什么简便的方法可以实现?

3
如果是我,而且这是一个选项的话,我会把所有这些处理放进一个不同的脚本中,只需让cron调用那个脚本,而不是搞很多cron作业条目。那样听起来只会带来痛苦。 - Christian Ternus
同意Christian Ternus的观点。如果处理作业需要在未来某个时间安排,使用at而不是cron可能更好。at更适合为将来某个时间安排一次性作业,而cron更适合需要重复执行的作业。at作业将在执行后自动从计划中“消失”。 - mti2935
1个回答

0

至少在大多数Linux发行版中,有一个crontab命令,允许您获取和设置用户crontab的内容。您可以像这样使用它:

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

然而,这种方法非常笨重并容易出错。更好的方法是将您的工作包装在一个脚本中,该脚本检查条件(例如标志文件)以决定是否运行基础逻辑,并改变此标志文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接