cron 작업을 통해 쉘 스크립트를 실행할 수 없습니다.

cron 작업을 통해 쉘 스크립트를 실행할 수 없습니다.

독립 실행형에서 작동하고 cron 작업을 통해 작동하지 않는 스크립트를 사용하고 있습니다.

qexma1@test:bin> head -n 10 test.sh
#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source $AEM_CONFIG/aem-wrap.conf

예약 된 일들:

qexma1@test:bin> crontab -l | grep aem-test.sh
01 15 * * * bin/test.sh -b ; touch bin/crontest.txt;

배너:

qexma1@test:bin> ll bin/ | grep cron
-rw-r--r--  1 qexma1 abc   0 Nov 11 15:01 crontest.txt

마커 파일 crontest.txt가 생성되었지만 스크립트가 실행되지 않았습니다. 허가 0755

답변1

stderr의 출력은 다음과 같으므로 변수가 $AEM_CONFIG설정되지 않았음을 의미합니다. 이것이 작업이 실패하는 이유입니다.

/global/appaem/aem/bin/aem-test.sh: line 5: /aem-wrap.conf: No such file or directory

이 문제를 해결하려면 스크립트를 수정하여 설정을 얻으십시오 $AEM_CONFIG.

지적했듯이 변수는 .bashrc에 정의되어 있습니다.cron은 ".bashrc" 및 ".bash_profile"에 정의된 변수를 무시합니다.. source ~/.bashrc예를 들어 스크립트에 한 줄을 추가 해야 합니다 . 예:

#!/bin/bash
declare -r PATH='/sbin:/bin:/usr/sbin:/usr/bin'
source ~/.bashrc
source $AEM_CONFIG/aem-wrap.conf

관련 정보