【问题标题】:Delete expired cron jobs from crontab从 crontab 中删除过期的 cron 作业
【发布时间】:2013-11-06 16:29:43
【问题描述】:

我的产品需要对用户发送给其他用户的每条消息进行 cronjob 处理。这个 cronjob 被添加到服务器上的 crontab 中。一切正常。现在一旦工作完成,有没有办法从 crontab 中删除过期的 cronjob 条目?

由于消息数量巨大,我的 crontab 一直在增长,所以我想清理旧的作业条目。有什么巧妙的方法可以实现吗?

【问题讨论】:

  • 如果是我,并且这是一个选项,我会将所有这些处理移动到一个不同的脚本中,然后让 cron 调用该脚本,而不是搞乱大量的 cronjob 条目。这听起来就像是痛苦的秘诀。
  • 同意克里斯蒂安·特纳斯。如果处理作业必须安排在将来的某个时间,使用at 而不是cron 可能会更好。 at 更适合在未来某个时间安排一次性作业,而cron 更适合需要重复执行的作业。 at 作业在执行后将自动从计划中“消失”。

标签: linux cron crontab


【解决方案1】:

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

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

但是,这很笨拙且容易出错。更好的方法是将您的作业包装在检查条件(例如标志文件)的脚本中,以决定是否运行底层逻辑并改为操作此标志文件。

【讨论】:

    猜你喜欢
    • 2013-10-26
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    相关资源
    最近更新 更多