cron devuelve el error json.pm Cent OS 7

cron devuelve el error json.pm Cent OS 7

Estoy ejecutando Cent OS 7 e intento invocar un script Perl para actualizar los datos de la Guía de TV por aire a XML para mi servidor de medios Plex.

El problema es que Cron no ejecuta el script.

Si ejecuto el script en el shell, funciona bien con el comando:

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

Si lo ejecuto mediante cron (cada minuto solo para probar):

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

No pasa nada.

Entonces, si ejecuto cron con:

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

y la exportación de cron.log:

No se puede localizar JSON.pm en @INC (@INC contiene: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/ lib64/perl5 /usr/share/perl5 .) en /home/Me$ BEGIN falló: la compilación se canceló en /home/Media/Misc/TVXML/hr_epg.pl línea 4.

La línea 4 es: use JSON;

Verificación de Perl:

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

cpan JSON:

cpan JSON Lectura '/root/.cpan/Metadata' La base de datos se generó el sábado 29 de junio de 2019 a las 00:55:31 GMT Obteniendo con LWP: http://mirrors.namecheap.com/CPAN/authors/01mailrc.txt.gz Leyendo '/root/.cpan/sources/authors/01mailrc.txt.gz' ................................. ............................................ HECHO Obteniendo con LWP: http://mirrors.namecheap.com/CPAN/modules/02packages.details.txt.gz La base de datos de lectura '/root/.cpan/sources/modules/02packages.details.txt.gz' se generó el domingo 30 de junio de 2019 a las 01:56:15 GMT ............. Nuevo CPAN Versión .pm (v2.26) disponible. [La versión actualmente en ejecución es v1.9800] Es posible que desee intentar instalar CPAN y recargar cpan para actualizar CPAN.pm y ejecutar la nueva versión sin salir de la sesión actual.

................................................. .............HECHO Obteniendo con LWP: http://mirrors.namecheap.com/CPAN/modules/03modlist.data.gz Leyendo '/root/.cpan/sources/modules/03modlist.data.gz' HECHO Escribiendo /root/.cpan/Metadata JSON está actualizado (4.02).

Si alguien puede brindarme ayuda ya que JSON está ahí y este script se ejecuta a través de CLI, sería genial.

Gracias

Respuesta1

Parece haber una discrepancia entre lo @INCejecutado por cron y lo @INCejecutado manualmente por usted en la terminal.

En cualquier caso, localice el directorio donde está la biblioteca:locate JSON.pm

Digamos que el directorio era /usr/libs, agregue esta línea en la parte superior de su script:

use lib '/usr/libs";

información relacionada