如何在crontab上执行perl脚本
我编写了一个perl脚本test.pl,它使用另一个文件testing.pm中编写的子例程。我可以手动成功运行此脚本,但在crontab上运行相同的脚本时,会出现以下错误如何在crontab上执行perl脚本,perl,cron,Perl,Cron,我编写了一个perl脚本test.pl,它使用另一个文件testing.pm中编写的子例程。我可以手动成功运行此脚本,但在crontab上运行相同的脚本时,会出现以下错误 无法在@INC中找到testing.pm 我已将这两个文件的权限更改为执行权限,并在脚本顶部使用了“使用测试”。如何在crontab上成功运行脚本 Crontab:**/2****PERL5LIB=$PERL5LIB:/home/test/testing.pm/home/test/test.pl>/home/test/test
无法在@INC中找到testing.pm
我已将这两个文件的权限更改为执行权限,并在脚本顶部使用了“使用测试”。如何在crontab上成功运行脚本
Crontab:**/2****PERL5LIB=$PERL5LIB:/home/test/testing.pm/home/test/test.pl>/home/test/test.log 2>&1
**
**您必须告诉您的Perl二进制文件在哪里查找
testing.pm
。您可以在crontab中执行此操作:
0 * * * * PERL5LIB=$PERL5LIB:/directory/where/testing.pm/lives perl myperlscript.pl
或者可以在.pl脚本中使用use lib
:
#!/usr/bin/perl
use strict;
use warnings;
use lib '/directory/where/testing.pm/lives';
...
更新:
您编辑的问题显示了几个问题:
PERL5LIB=$PERL5LIB:/home/test/testing.pm
。您需要将目录添加到PERL5LIB
而不是文件的路径。正确的版本应该是:`PERL5LIB=$PERL5LIB:/home/test'test.pl
说use testing
。在测试之后的任何地方都找不到分号
您必须告诉您的Perl二进制文件在哪里查找
testing.pm
。您可以在crontab中执行此操作:
0 * * * * PERL5LIB=$PERL5LIB:/directory/where/testing.pm/lives perl myperlscript.pl
或者可以在.pl脚本中使用use lib
:
#!/usr/bin/perl
use strict;
use warnings;
use lib '/directory/where/testing.pm/lives';
...
更新:
您编辑的问题显示了几个问题:
PERL5LIB=$PERL5LIB:/home/test/testing.pm
。您需要将目录添加到PERL5LIB
而不是文件的路径。正确的版本应该是:`PERL5LIB=$PERL5LIB:/home/test'test.pl
说use testing
。在测试之后的任何地方都找不到分号
您的@INC阵列中是否有
testing.pm
?如果没有,您可以通过PERL5LIB环境变量发送到@INC:
env PERL5LIB=/path/to/testing.pm perl test.pl
或者使用具有不同路径的lib模块--使用lib qw#/path/to/testing.pm#代码>--位于脚本的顶部。
希望对您进行排序…您的@INC阵列中是否有testing.pm
?如果没有,您可以通过PERL5LIB环境变量发送到@INC:
env PERL5LIB=/path/to/testing.pm perl test.pl
或者使用具有不同路径的lib模块--使用lib qw#/path/to/testing.pm#代码>--位于脚本的顶部。
希望你…有多种方法可以解决这个问题。我倾向于保持crontab的简单性,并添加如下内容:
use FindBin qw($Bin);
use lib "$Bin/../lib";
这假设库文件与perl脚本处于固定关系。该示例来自。有多种方法可以解决此问题。我倾向于保持crontab的简单性,并添加如下内容:
use FindBin qw($Bin);
use lib "$Bin/../lib";
这假设库文件与perl脚本处于固定关系。示例来源于。这是问题的一个子集,只需一个建议使用strict
@Ganesh use strict-它如何影响上的执行crontab@Rudra:不,它不会影响crontab中的执行,我只是建议使用它,因为您仅对某些变量使用my
。这是问题的一个子集,只需一个建议use strict
@Ganesh use strict-它如何影响上的执行crontab@Rudra:不,它不会影响crontab中的执行,我只是建议这样做,因为您仅对某些变量使用my
。然后返回您的问题,编辑问题并向我们展示一些代码:您的crontab看起来如何?你的test.pl
看起来怎么样?然后回到你的问题,编辑问题并向我们展示一些代码:你的crontab看起来怎么样?您的test.pl
看起来怎么样?