cron gibt json.pm-Fehler zurück Cent OS 7

cron gibt json.pm-Fehler zurück Cent OS 7

Ich verwende Cent OS 7 und versuche, ein Perl-Skript aufzurufen, um die Over the Air TV Guide-Daten für meinen Plex-Medienserver in XML zu aktualisieren.

Das Problem ist, dass Cron das Skript nicht ausführt.

Wenn ich das Skript in der Shell ausführe, läuft es mit dem folgenden Befehl problemlos:

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

Wenn ich es per Cron ausführe (jede Minute nur zum Test):

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

Nichts passiert.

Wenn ich also cron mit folgendem ausführe:

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

und der Export von cron.log:

JSON.pm kann in @INC nicht gefunden werden (@INC enthält: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) bei /home/Me$ BEGIN fehlgeschlagen – Kompilierung bei /home/Media/Misc/TVXML/hr_epg.pl Zeile 4 abgebrochen.

Zeile 4 lautet: use JSON;

Perl-Prüfung:

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

cpan JSON:

cpan JSON Lesen '/root/.cpan/Metadata' Datenbank wurde am Samstag, 29. Juni 2019, 00:55:31 GMT generiert. Abrufen mit LWP: http://mirrors.namecheap.com/CPAN/authors/01mailrc.txt.gz Lesen von „/root/.cpan/sources/authors/01mailrc.txt.gz“ ............................................................................FERTIG Abrufen mit LWP: http://mirrors.namecheap.com/CPAN/modules/02packages.details.txt.gz „/root/.cpan/sources/modules/02packages.details.txt.gz“ wird gelesen. Die Datenbank wurde am Sonntag, 30. Juni 2019, 01:56:15 GMT generiert. Neue CPAN.pm-Version (v2.26) verfügbar. [Derzeit laufende Version ist v1.9800] Sie können versuchen, CPAN reload cpan zu installieren, um sowohl CPAN.pm zu aktualisieren als auch die neue Version auszuführen, ohne die aktuelle Sitzung zu verlassen.

...............................................................FERTIG Abrufen mit LWP: http://mirrors.namecheap.com/CPAN/modules/03modlist.data.gz Lesen von „/root/.cpan/sources/modules/03modlist.data.gz“ FERTIG. Das Schreiben von /root/.cpan/Metadata JSON ist auf dem neuesten Stand (4.02).

Wenn mir jemand helfen könnte, da JSON vorhanden ist und dieses Skript über die CLI ausgeführt wird, wäre das großartig.

Danke

Antwort1

Es scheint eine Diskrepanz zwischen der @INCAusführung durch Cron und der @INCvon Ihnen manuell im Terminal ausgeführten Ausführung zu geben.

Suchen Sie in jedem Fall das Verzeichnis, in dem sich die Bibliothek befindet:locate JSON.pm

Nehmen wir an, das Verzeichnis wäre /usr/libs, dann fügen Sie am Anfang Ihres Skripts die folgende Zeile hinzu:

use lib '/usr/libs";

verwandte Informationen