json.pm 오류를 반환하는 cron Cent OS 7

json.pm 오류를 반환하는 cron Cent OS 7

Cent OS 7을 실행 중이고 Perl 스크립트를 호출하여 Over the Air TV Guide 데이터를 Plex 미디어 서버의 XML로 업데이트하려고 합니다.

문제는 Cron이 스크립트를 실행하지 않는다는 것입니다.

쉘에서 스크립트를 실행하면 다음 명령으로 제대로 실행됩니다.

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

cron을 통해 실행하는 경우(테스트를 위해 1분마다):

* * * * * /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 -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.pm을 업그레이드하고 현재 세션을 종료하지 않고 새 버전을 실행하려면 CPAN reload cpan을 설치해 보세요.

................................................. .............DONE 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";

관련 정보