Perl脚本可以工作但不能通过CRON

ede*_*ter 2 perl cron

我有一个perl脚本(与wp同步美味),其中:

  1. 通过shell运行但是
  2. 不通过cron运行(我没有收到错误)

我唯一能想到的是它错误地读取了配置文件但是...它是通过完整路径定义的(我认为).

我把我的配置文件读作:

my $config = Config::Simple->import_from('/home/12345/data/scripts/delicious/wpds.ini',
   \my %config);
Run Code Online (Sandbox Code Playgroud)

(我在mediatemple上托管)

有人有线索吗?

更新1:这里是完整的代码:http://plugins.svn.wordpress.org/wordpress-23-compatible-wordpress-delicious-daily-synchronization-script/trunk/(但我已经将上面的路径添加到了配置文件位置不同)

更新2:在https://forums.mediatemple.net/viewtopic.php?pid=31563#p31563上交叉发布

更新3:完整路径完成了诀窍,解决了

Jon*_*ler 7

cron作业和从shell运行的作业之间的区别是"环境".主要区别在于您的配置文件等不是为cron作业运行的,因此您在普通shell环境中设置的任何环境变量在cron环境中都没有设置相同 - 没有对PATH的扩展,没有环境变量标识美味和/或WP托管等

建议:创建一个仅将环境报告给已知文件的cron作业:

env > /home/27632/tmp/env.27632
Run Code Online (Sandbox Code Playgroud)

然后查看您自己的shell环境中设置的内容.机会是,这将揭示麻烦.

如果不这样做,其他环境差异就是cron作业没有终端,并且输入和输出都有/ dev/null - 所以交互式的东西不能正常工作.