我正在运行 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 并在不离开当前会话的情况下运行新版本。
..................................................... ............DONE 使用 LWP 获取:http: //mirrors.namecheap.com/CPAN/modules/03modlist.data.gz Reading '/root/.cpan/sources/modules/03modlist .data.gz' DONE Writing /root/.cpan/Metadata JSON 是最新的 (4.02)。
如果有人可以给我一些帮助,因为 JSON 在那里并且这个脚本确实通过 CLI 运行,那就太好了。
谢谢