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库.我的问题是:这是完整和便携的吗?有没有更好的办法?
我已经看到了许多bash和perl脚本,它们应该为执行Perl脚本准备环境,但这似乎就足够了.欢迎任何建议!
编辑:从评论到问题,似乎我使用Perlbrew和'的"坏"混合local::lib
.这里回答了确保库安装在特定Perlbrew版本中的方法:如何在使用 perlbrew时安装CPAN模块?.双方cpan
并cpanm
会在安装PERL5LIB
时,你正在使用local::lib
,除非你明确地告诉他们不这样做.也cpanm
似乎更适合一起工作Perlbrew.
#!
脚本的shebang ( ) 行应指向它要在其下运行的( perlbrew
-installed) 。perl
(这应该作为安装脚本的一部分来完成。)这就是您所需要的。
0 2 * * * /path/to/script arg1 ...
Run Code Online (Sandbox Code Playgroud)