【问题标题】:Is it possible to set a cron job or bash script to run X minutes from now?是否可以设置 cron 作业或 bash 脚本从现在开始运行 X 分钟?
【发布时间】:2016-04-17 05:19:30
【问题描述】:

我知道我可以通过添加一行 crontab -e 将 cron 作业设置为每 5 分钟运行一次:*/5 * * * * /path/to/script.sh

是否可以使用 date +"%M" 以分钟为单位获取系统时间,然后将 cron 作业设置为在 date +"%M" 运行加上 5 分钟?

我知道我可以通过以下过程获得date +"%M" + 5:

$ MIN=`date +"%M"`
$ export MIN
$ expr $MIN + 5

是否可以使用它来设置 cron 作业或脚本以“当前时间以分钟为单位”加上“X 分钟”运行?

我可以想象这在用户创建新文档的应用程序中很有用,然后在创建文档 X 分钟后被提示保存或命名文档。

【问题讨论】:

  • 你的意思是,cron 运行在一个准确的时间。将其设置为在当前时间加上 x 分钟运行甚至没有意义,因为它必须已经运行才能做到这一点......
  • 在您的示例中,您将不得不在不再需要 cronjob 后终止它。 Cron 不是为此而生的。请参阅下面的“at”。

标签: bash cron expr


【解决方案1】:
【解决方案2】:

您应该改用at 命令。

使用at,您可以使用时间甚至是midnightteatimetomorrow 等关键字来指定应该运行命令的时间。

您可以像这样指定 5 分钟后的时间:

at now + 5 min

然后输入你要调度的命令。或者,您可以在作业文件中输入您计划的作业,并使用 -f 选项将其作为 at 命令的参数。

作业文件示例:

$ cat myjobs.txt
/path/to/a/shell-script.sh
/path/to/any/command/or/script.sh

以下命令将在 5 分钟后执行这些作业:

$ at -f myjobs.txt now + 5 min

查看link 了解更多信息。

【讨论】:

    【解决方案3】:

    是的,你可以:

    */5 * * * * /path/to/script.sh && crontab -r
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2012-04-22
      • 2015-02-22
      • 1970-01-01
      • 2013-07-08
      • 2012-08-06
      相关资源
      最近更新 更多