微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Perlbrew时从crontab运行Perl脚本

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

然后检查PERL5LIB的值:

# echo $PERL5LIB

然后,在用户的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 ...

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

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

编辑:从评论到问题,似乎我使用Perlbrew和local :: lib的“坏”混合.确保库安装在特定Perlbrew版本中的方法在这里得到解答:How do I install CPAN modules while using perlbrew?.当您使用local :: lib时,cpan和cpanm都将安装在PERL5LIB下,除非您明确告诉他们不这样做. cpanm似乎也更适合与Perlbrew一起工作.

解决方法

脚本的shebang(#!)行应指向它要运行的(perlbrew-installed)perl. (这应该是安装脚本的一部分.)这就是你所需要的.
0 2 * * * /path/to/script arg1 ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐