【问题标题】:crontab job occasionally quits without explanationcrontab 工作偶尔会在没有解释的情况下退出
【发布时间】:2014-01-18 08:29:05
【问题描述】:

我有一个每小时运行的 crontab 作业。有时它会在没有解释或我能辨别的原因的情况下提前退出。可能是什么问题?什么可以帮助我深入挖掘?

上下文是 Ubuntu 12.04.3 LTS。 SHELL 是 /bin/bash。

目前的工作定义是:

59 * * * * set -x; set +e; cd ~/OPEN/staging-site ; /usr/local/bin/p4 sync -q ; bin/publish.py ...

(“set”是我当前调试工作的一部分)。

生成的电子邮件,当它失败时,修剪了一些标头,是:

From: Cron Daemon <root@HERE.com>
To: "Repenning, Jack" <jrepenni@HERE.com>
Content-Class: urn:content-classes:message
Date: Fri, 17 Jan 2014 14:57:01 -0600
Subject: Cron <jrepenni@prod-akiary-app01> set -x; set +e; cd  ~/OPEN/staging-site ; /usr/local/bin/p4 sync  -q ; bin/staging
x-cron-env: <LOGNAME=jrepenni>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

+ set +e
+ cd /u0/jrepenni/OPEN/staging-site
+ /usr/local/bin/p4 sync -q

请注意,没有提到启动bin/staging。确认这一点后,会发现一些副作用,例如为它的工作创建一个 tmp 目录,即使发生了bin/staging 的最小执行。没有这样的痕迹。

我碰巧知道 Perforce API 会针对一些没有理性存在会认为错误的事情返回错误(例如“您请求同步但已经同步”)。这似乎没有扩展到命令行,在这种情况下返回 no-error (0)。但是,见鬼,我尝试了set +e,以防这种虚假的错误返回导致脚本停止。没有帮助。

脚本 bin/staging 负责 $PATH 和此类 cron 所需的细节 - 但是,当然,它甚至没有启动,所以既不在这里也不在那里。

更新:脚本是可执行的:

> ll bin/staging 
-r-xr-xr-x 1 jrepenni users 251 Jan 17 11:55 bin/staging

... 和 shabanged:

> head -1 bin/staging
#!/bin/bash

【问题讨论】:

  • 检查 /var/log/cron 以获得更多信息?也可以指定 bin/staging 的完整路径而不是相对路径?
  • 没有 /var/log/cron。 /var/log/syslog 记录了命令的启动,但我看不到成功或失败的迹象:
  • 将此添加到您的 cronjob 的末尾:&gt; /tmp/mylog.txt 2&gt;&amp;1 看看你会得到什么。
  • 和我收到的邮件一样

标签: python bash cron perforce crontab


【解决方案1】:

似乎事情很可能会突然发生,因为它会停止。通过将 2&gt;&amp;1 添加到您的 p4 sync 可以帮助将 STDERR 合并到您的输出中。

将您的代码放入脚本中并重复运行,您可能会以交互方式解决问题。

【讨论】:

    【解决方案2】:

    嗯:要么我说错了,要么行为多变。

    我现在看到了那些外部痕迹,表明 bin/staging 脚本确实运行了。 Cron 作业电子邮件在 p4 行停止,但这似乎是一个 I/O 问题,而不是实际执行问题。可能是 ssh 出了问题(在我们的配置中,p4 通过 ssh 隧道与其存储库通信)。

    不管发生了什么,昨晚发生了变化;我一直从 bin/staging 过程中获得常规输出,但突然没有。

    谢谢大家,感谢你们的“小灰细胞”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2011-10-22
      • 2020-12-31
      • 2017-11-12
      • 2010-11-14
      相关资源
      最近更新 更多