cron возвращает ошибку json.pm Cent OS 7

cron возвращает ошибку json.pm Cent OS 7

Я использую Cent OS 7 и пытаюсь вызвать скрипт Perl для обновления данных телегида Over the Air в формате XML для моего медиасервера Plex.

Проблема в том, что 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

Ничего не произошло.

Итак, если я запущу 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:

Невозможно найти JSON.pm в @INC (@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 — компиляция прервана на строке 4 /home/Media/Misc/TVXML/hr_epg.pl.

Строка 4: использовать JSON;

Проверка Perl:

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

cpan JSON:

cpan JSON Чтение базы данных '/root/.cpan/Metadata' было создано в субботу, 29 июня 2019 г. 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' было создано в воскресенье, 30 июня 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

Кажется, есть несоответствие между @INCвыполнением через cron и @INCвыполнением вручную в терминале.

В любом случае найдите каталог, в котором находится библиотека:locate JSON.pm

Допустим, каталог — /usr/libs, добавьте эту строку в начало вашего скрипта:

use lib '/usr/libs";

Связанный контент