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'說 $^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' 資料庫於 Sun, 30 Jun 2019 01:56:15 GMT 產生......新 CPAN .pm 版本(v2. 26) 可用。 [目前正在執行的版本是 v1.9800] 您可能想要嘗試安裝 CPAN reload 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";

相關內容