job.sh
/home/user/scripts
그런 다음 에 심볼릭 링크하는 스크립트가 있습니다 /home/user/bin/job
. 사용자 정의 바이너리 경로가 포함되어 있으므로 .bashrc
cli에서 명령을 실행할 때마다 모든 것이 예상대로 작동합니다.job param1 etc
해당 명령은 cronjob을 통해 실행되어야 하지만 그렇지 않습니다. 반면에 cronjob이 ( /home/user/bin/job
단순 경로 대신 job
) 전체 경로를 참조하면 모든 것이 잘 실행됩니다.
이 문제를 해결하는 방법에 대한 조언이 있습니까?
답변1
cron
의도적으로 제한된 환경(표준 셸과 다른 제한된 경로 포함)에서 실행됩니다.
스크립트(스크립트의 전체 경로 포함)를 실행한 다음 내부적으로 경로 변수를 설정하거나 crontab
줄 자체에서 경로를 설정해야 합니다.
한 가지 예는,
12 0 * * * (export PATH=$PATH:/somedirectory; job)
실행 중인 모든 항목에 대한 전체 경로를 포함 crontab
하고 실행된 스크립트에서 경로를 올바르게 설정하는 것이 실제로 더 안전합니다 cron
.