【问题标题】:Perl script executed by Cron failedCron 执行的 Perl 脚本失败
【发布时间】:2011-12-21 19:53:16
【问题描述】:

我维护了一个数据库(MySQL),我想使用 perl 脚本将一些数据备份到数据库中。为了省事,我想让 cron 帮我做,我使用 crontab 插入了以下内容

*/5 * * * * blctrl /home/blctrl/code/perl/tt01.pl

但是,cron 从来没有完成它的工作,有什么建议可以完成它吗?安装的Linux是Centos 5?

【问题讨论】:

  • 什么是blctrl?当您自己运行该命令时会发生什么?你检查你的mail了吗?
  • tt01.pl 是否以#!/usr/bin/perl 或类似名称开头?你确定是那个正确的 Perl 解释器吗?
  • /var/cron/log 中可能有一些有趣的东西

标签: linux perl cron


【解决方案1】:
*/5 * * * * blctrl /home/blctrl/code/perl/tt01.pl

这看起来像/etc/crontab 的语法,系统范围的 crontab 文件。前 5 个字表示何时运行该命令,第 6 个是运行它的帐户,该行的其余部分是要执行的命令。

(线索是该命令位于/home/blctrl 下,这将是帐户blctrl 的主目录。)

您自己的 crontab(您提供给 crontab 命令的那个)的语法是不同的。您无需指定帐户名称,因为它只在您自己的帐户下运行。

试试这个:

*/5 * * * * /home/blctrl/code/perl/tt01.pl

编辑:顺便说一句,当遇到这样的问题时,我会尝试的第一件事是将命令替换为简单的命令,也许是touch /tmp/FOO。这会告诉您问题出在您的 Perl 脚本还是您的 crontab 上。

【讨论】:

  • 你好,blctrl是linux系统中的用户名
  • 首先感谢您的友好回答,但是,我删除了 blctrl,它仍然无法正常工作。 touch 命令有效,也许,我猜它与环境变量有关。我该如何追踪问题,找出导致它失败的原因?
  • 这取决于/home/blctrl/code/perl/tt01.pl 做了什么(我对此一无所知)。从命令行运行它会发生什么?您的环境中是否有任何 MySQL 特定的变量?尝试将一些打印语句添加到 tt01.pl 以缩小失败的范围。
猜你喜欢
  • 2012-07-21
  • 2012-03-02
  • 1970-01-01
  • 2011-06-28
  • 2021-05-18
  • 2021-09-19
  • 2020-11-24
  • 2020-08-19
  • 1970-01-01
相关资源
最近更新 更多