使用Perlbrew时从crontab运行Perl脚本

Jav*_*ces 7 perl cron perlbrew

我尝试了以下内容并发现它可以正常工作.这是由非特权用户完成的.首先找出perl命令的位置:

# which perl
Run Code Online (Sandbox Code Playgroud)

然后检查以下值PERL5LIB:

# echo $PERL5LIB
Run Code Online (Sandbox Code Playgroud)

然后,在用户的crontab文件中,执行以下操作:

MAILTO=<my email address for the jobs output>
HOME=/home/myhome
PERL5LIB=/home/myhome/perl5/lib/perl5

0 2 * * * $HOME/<rest of path to perl>/perl $HOME/<path to my perl script> arg1 ...
Run Code Online (Sandbox Code Playgroud)

这将在凌晨2点运行,似乎正确找到所有Perl库.我的问题是:这是完整和便携的吗?有没有更好的办法?

我已经看到了许多bashperl脚本,它们应该为执行Perl脚本准备环境,但这似乎就足够了.欢迎任何建议!

编辑:从评论到问题,似乎我使用Perlbrew和'的"坏"混合local::lib.这里回答了确保库安装在特定Perlbrew版本中的方法:如何在使用 perlbrew时安装CPAN模块?.双方cpancpanm会在安装PERL5LIB时,你正在使用local::lib,除非你明确地告诉他们不这样做.也cpanm似乎更适合一起工作Perlbrew.

ike*_*ami 2

#!脚本的shebang ( ) 行应指向它要在其下运行的( perlbrew-installed) 。perl(这应该作为安装脚本的一部分来完成。)这就是您所需要的。

0 2 * * * /path/to/script arg1 ...
Run Code Online (Sandbox Code Playgroud)