cron 返回 json.pm 错误 Cent OS 7

cron 返回 json.pm 错误 Cent OS 7

我正在运行 Cent OS 7,并尝试调用 perl 脚本来将无线电视指南数据更新为 Plex 媒体服务器的 XML。

问题是 Cron 没有运行该脚本。

如果我在 shell 中运行该脚本,它可以使用以下命令正常运行:

/usr/bin/perl /home/Media/Misc/TVXML/hr_epg.pl > /home/Media/Misc/TVXML/test.xml

如果我通过 cron 运行它(每分钟运行一次,只是为了测试):

* * * * * /usr/bin/perl /home/Media/Misc/TVXML/hr_epg.pl > /home/Media/Misc/TVXML/test.xml

什么都没发生。

因此,如果我使用以下命令运行 cron:

* * * * * /usr/bin/perl /home/Media/Misc/TVXML/hr_epg.pl > /home/Media/Misc/TVXML/test.xml var1 var2 &>>/home/Media/Misc/TVXML/cron.log

以及 cron.log 的导出:

无法在 @INC 中找到 JSON.pm (@INC 包含:/usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 。),位于 /home/Me$ BEGIN 失败 - 编译在 /home/Media/Misc/TVXML/hr_epg.pl 第 4 行中止。

第4行是:使用JSON;

Perl 检查:

perl -E'say $^X' /usr/bin/perl

cpan JSON:

cpan JSON 读取“/root/.cpan/Metadata”数据库于 2019 年 6 月 29 日星期六 00:55:31 GMT 生成,使用 LWP 获取: http://mirrors.namecheap.com/CPAN/authors/01mailrc.txt.gz 正在读取‘/root/.cpan/sources/authors/01mailrc.txt.gz’..............................................................................完成使用 LWP 获取: http://mirrors.namecheap.com/CPAN/modules/02packages.details.txt.gz 正在读取“/root/.cpan/sources/modules/02packages.details.txt.gz”数据库于 2019 年 6 月 30 日星期日 01:56:15 GMT 生成 ............. 新的 CPAN.pm 版本 (v2.26) 可用。[当前运行的版本是 v1.9800] 您可能想尝试安装 CPAN 重新加载 cpan 以升级 CPAN.pm 并运行新版本而无需离开当前会话。

...........................................................完成使用 LWP 获取: http://mirrors.namecheap.com/CPAN/modules/03modlist.data.gz 读取‘/root/.cpan/sources/modules/03modlist.data.gz’ 完成写入/root/.cpan/Metadata JSON 已更新(4.02)。

如果有人能给我一些帮助,因为那里有 JSON,而且这个脚本确实通过 CLI 运行,那就太好了。

谢谢

答案1

@INCcron 执行的和@INC您在终端中手动执行的之间似乎存在差异。

无论如何,找到库所在的目录:locate JSON.pm

假设目录是/usr/libs,将这一行添加到脚本的顶部:

use lib '/usr/libs";

相关内容