【问题标题】:How to find the error which is causing a segmentation fault in a script run by cron job如何在 cron 作业运行的脚本中找到导致分段错误的错误
【发布时间】:2012-11-22 14:53:42
【问题描述】:

我有一个每天执行一次的 cron 作业:

0 20 * * * /usr/bin/wget --timeout=10800 -O /home/File.txt http://www.site.com/script.php

到目前为止一切都很好,但最近我发现脚本刚刚停止。

我查看了/var/log/httpd/error_log(它是一个 CentOS)并发现了这个:

[Thu Nov 21 21:30:32 2012] [notice] child pid 8985 exit signal Segmentation fault (11)

现在,这意味着两件事:脚本成功运行了大约一个半小时,但随后发生了分段错误。通常脚本需要大约 2 小时才能完成,因此完成它的工作大约需要半小时。

现在,即使我打开了 error_reporting,我也找不到导致脚本停止的错误。

我想知道,有什么方法可以找到导致脚本终止的潜在错误行吗?

我确实尝试过 google、SO、ofc,并尝试通过这样做来达到与 this question here on SO 相同的效果:

0 20 * * * /usr/bin/wget --timeout=10800 -O /home/File.txt http://www.site.com/script.php 2>1& >> /home/log.txt

但是日志文件是空的。我不太擅长管理 linux,所以可能是我在这个 cronjob 中的命令有误,所以请引导我正确。

【问题讨论】:

  • 因为脚本是用 php 编写的,也许有人会提示我在那里找到错误。
  • 是的,但是在你的机器上你正在执行 wget,它是用 C 语言编写的。所以你只能在日志中看到来自本地机器的错误,而不是关于远程服务器的错误。顺便说一句,你怎么知道段错误属于这个 cronjob?我的段错误日志指定了崩溃进程的名称:Nov 22 16:52:47 xdat27 kernel: [1205891.274914] a.out[3508]: segfault at 4006c0 ip 00000000004005f4 sp 00007fff088c1cb0 error 7 in a.out[40000+ ]
  • 这个 cron 作业实际上是在服务器本身上运行的。我知道这个 pid 属于这个脚本,因为当脚本运行时,我从 ps 命令查看了它的 PID。

标签: php linux segmentation-fault wget


【解决方案1】:

试试这个

0 20 * * * /usr/bin/wget --timeout=10800 \
-O /home/File.txt http://www.site.com/script.php  >> /home/log.txt 2>&1 

2>&1 部分告诉将 STDERR 发送到与 STDOUT 相同的位置。

【讨论】:

    【解决方案2】:

    Cron 将命令的输出发送到正在执行它的用户的电子邮件中。

    要使这个系统正常工作,您必须安装一个邮件守护程序,例如 exim 或 postfix。

    另外,您要求 wget 在 /home/ 目录中写入一个文件,我认为是非 root 用户,这意味着您不能这样做。如果你是 root,你不应该这样做。

    【讨论】:

    • 安装了邮件守护程序,我每天都定期收到来自这个 cron 作业的邮件,但正如我所说的,就在几天前,这些问题开始发生 - 脚本出现分段错误,并且cron 作业从不发送电子邮件
    • 是不是因为你告诉 wget 下载文件的位置很奇怪?
    • 不,不。我已经使文件对运行 wget(apache)的用户可写,正如我所说 - 一切都工作到几天(而且我根本没有更改脚本)。现在,我只是想弄清楚如何发现导致脚本突然退出的错误。
    • 当我这样做时:[root@mail log]# dmesg | grep failed 我什么也得不到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2014-09-10
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多