-2

Perl モジュールは、crontab を使用せずに実行すると正常に動作しますが、Crontab を使用してスクリプトを実行しようとすると、Perl.pl ファイル内で呼び出された他のモジュールが見つからないなどのエラーがスローされます。

Crontabファイルに追加した行は

* * * * * cd /usr/bin/perl | perl path_to_script/script.pl;

私が得ているエラーは

Can't locate module.pm in @INC (@INC contains: /home/path/lib /usr/another/path/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at path_to_script/script.pl line 23

crontab ファイルを介してスクリプトを実行しようとすると、サブモジュールへの接続に失敗します。

4

4 に答える 4

1

これを試して :

*/5 * * * *        bash -l  perl  path/script.pl
# change the above to your crontab settings
于 2013-09-24T17:16:23.340 に答える
0

不足しているモジュールを見つける場所を示す -I (大文字の i) オプションを指定して Perl を実行するか、次のようなラッパーを作成します。

#!/bin/sh
cd /usr/lib/perl
PERL5LIB=$HOME/lib/perl perl path_to_script/script.pl

...代わりに、このスクリプトを crontab から実行します。

( の値はPERL5LIBこれよりも複雑でなければならない場合があります。対話型シェルでその値からコピー/貼り付けすることもできます。)

于 2013-09-24T20:05:35.130 に答える
0

PERL5LIB環境変数を追加して、モジュール ファイル/etc/crontabへのパスを含めるだけです。.pm

例:

PERL5LIB=/root/perl5/lib/perl5:/usr/share/perl5
于 2015-10-03T00:06:48.260 に答える