linux - unix/linux 中的 cron 表达式是否允许指定确切的开始和结束日期

标签 linux unix cron crontab

我希望能够配置这样的东西。

  1. 我想从 2009 年 6 月 29 日到 2009 年 6 月 29 日至 2009 年 12 月 30 日每天早上 7 点运行作业“X”。将当前日期视为 4/4/2009。

最佳答案

可以以一种棘手的方式完成。

你需要三个独立的cron该范围内的所有作业都运行相同的代码(在本例中为 X):

  • 6 月 29 日和 30 日 ("0 7 29,30 6 * X")。
  • 7 月到 11 月 ("0 7 * 7-11 * X") 的每一天。
  • 除了 12 月的最后一天 ("0 7 1-30 12 * X") 之外的所有人。

这给你:

# Min   Hr   DayOfMonth   Month   DayOfWeek   Command
# ---   --   ----------   -----   ---------   -------
   0     7      29,30        6        *          X
   0     7          *     7-11        *          X
   0     7       1-30       12        *          X

然后确保在 2010 年 6 月 29 日到来之前将它们注释掉。您可以添加最后一个 cron 12 月 31 日的工作,通过电子邮件通知您需要将其禁用。

或者你可以修改X如果年份不是 2009 年,则立即退出。

if [[ "$(date +%Y)" != "2009" ]] ; then
    exit
fi

那么即使您忘记禁用作业也没关系。

关于linux - unix/linux 中的 cron 表达式是否允许指定确切的开始和结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/704927/

相关文章:

linux - 如果 256 个线程比 8 个线程提供更好的性能,我可能采用了错误的方法吗?

linux - 如何避免 <defunct> 进程?

linux - 查找,grep gzipped 文件

shell - Unix命令获取远程主机上的目录列表

ubuntu - Cron 作业在终端工作,不能单独工作

python - 在 Linux (Ubuntu 17) 上导入 python-pptx 时出现问题

linux - 从远程复制指定目录时出现"Is a directory"错误

bash - Unix 命令 Timeout 是否也会杀死进程的任何子进程?

shell - 为什么我的 cron 工作会收到意外的 EOF?

linux - 使用 Bash 脚本添加到 Crontab(如果尚不存在)