如何在 cron 作业运行的脚本中找到导致分段错误的错误



我有一个每天执行一次的 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,我也找不到导致脚本停止的错误。

我想知道,有没有办法让我找到导致脚本终止的潜在错误行?

我确实尝试了谷歌和SO,ofc,并试图通过这样做来实现与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 中是错误的,所以请引导我正确。

试试这个

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相同的位置。

Cron 将命令的输出发送到执行该命令的用户的电子邮件。

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

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

相关内容

  • 没有找到相关文章

最新更新