为什么我的Perl脚本在cron运行时无法加载模块?
发布时间:2020-12-16 06:11:15 所属栏目:大数据 来源:网络整理
导读:我有一堆Perl脚本都运行良好,但需要使用Plibdata;在顶部. 我设置了一个运行的cron作业(我从root获取确认电子邮件)并且它回吐了以下错误消息: Can't locate Plibdata.pm in @INC (@INC contains: /install/lib /opt/perl58/lib/5.8.8/IA64.ARCHREV_0-thread-
我有一堆Perl脚本都运行良好,但需要使用Plibdata;在顶部.
我设置了一个运行的cron作业(我从root获取确认电子邮件)并且它回吐了以下错误消息: Can't locate Plibdata.pm in @INC (@INC contains: /install/lib /opt/perl58/lib/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl58/lib/5.8.8 /opt/perl58/lib/site_perl/5.8.8/IA64.ARCHREV_0-thread-multi /opt/perl58/lib/site_perl/5.8.8 /opt/perl58/lib/site_perl .) at ./x line 5. BEGIN failed--compilation aborted at ./x line 5. 第5行是……你猜对了….使用Plibdata; 我也试图设置环境: use lib "$ENV{CARSPATH}/install/lib"; 所以也许如果我找到了这个plibdata的位置,我可以明确指示它吗? 我的cron命令将使用/usr/bin/sh执行crontabs … 有什么建议? 此脚本从命令行运行. 解决方法
像其他人建议的那样从包装脚本运行程序可能是我的首选方法,但可能还有一些其他解决方案:
如果您使用的是现代cron,则可以在crontab条目中执行以下操作: * * * * * CARSPATH=/opt/carsi x 用适当的时间表指示符替换星号. 这将为x进程设置CARSPATH,并允许使用传递环境变量的lib语句. 您还可以根据shell和cron实现将环境设置存储在文件中,并执行以下操作: * * * * * source specialenv.sh && x specialenv.sh包含的行(用于bash) export CARSPATH=/opt/carsi 如果您选择这样做,您也可以直接在crontab中设置环境变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |