독립 실행형에서 작동하고 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