【问题标题】:cron jobs set for different times, but execute at the same time.cron 作业设置为不同的时间,但同时执行。
【发布时间】:2014-09-15 12:59:17
【问题描述】:

我有一个文件加载到 crontab 中,其中包含以下作业:

# script1 executes at 12:30 daily
# script2 executes at 12:35 daily

30 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script1.php 

35 12 * * * /usr/bin/wget -q -O temp.txt http://<host-url>/cronjob/script2.php

我遵守了这个网站的规则:

How to Set-up a Cron Job

我最初在 crontab 列表中显示这两个作业时遇到了问题。我通过将所有作业设置在一行上解决了这个问题,详见以下部分:

处理来自 Crontab 的错误消息

当我正确列出了两个作业后,我进行了测试以验证它们是否正确执行。在 12:31,我注意到两个脚本都执行了。

为什么会这样?如何安排它以便 script2 在它自己的预定时间执行?

我知道这不是一个大问题,但我很想知道。

感谢您的帮助。

【问题讨论】:

  • 这很奇怪...您可以创建一个检查数据的包装器。如果是12.30,退出;如果是 12.35,请继续。
  • @fedorqui 对不起,我没有关注,因为这是我第一次尝试设置多个 cron 作业。能否提供链接或示例?
  • Mmmm 用于调试我的建议是让脚本调用wget,而不是直接从crontab 调用wget。但这可能会在以后出现。现在让我们关注为什么它不起作用。如果你这样做crontab -l,你会得到什么?
  • 我得到了一份工作清单,如# runs daily at 2:00 am and 2:35 am30 12 * * * /usr/bin/wget -q -O temp.txt http://&lt;host-url&gt;/cronjob/script1.php 35 12 * * * /usr/bin/wget -q -O temp.txt http://&lt;host-url&gt;/cronjob/script2.php所显示的那样
  • 这很奇怪,想不出任何合乎逻辑的原因。投票转向Super User,因为在那里他们可能会提供比这里更好的帮助(Stack Overflow 特定于编程)。

标签: crontab


【解决方案1】:

我打开了要编辑的 cron 作业:

crontab -e

并使用 Nano 进行编辑。

我在作业之间添加了一个换行符,这解决了问题。

所以最初创建的文件是在一台 Windows 机器上完成的,该机器是通过 FTP 连接到服务器的。我检查了该文件,它是在没有扩展名的 Notepad++ 中创建的,也尝试使用 .TXT 扩展名。 EOL 字符设置为 UNIX

无论在何种情况下,加载文件时,两个作业都会在第一个预定时间执行。在我使用上面的编辑修改了 cron 作业之后。 cron 作业在预定时间执行(也就是相隔 5 分钟)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多