cron은 사용자 정의 경로에 기호 링크가 있는 명령을 사용할 수 없습니다.

cron은 사용자 정의 경로에 기호 링크가 있는 명령을 사용할 수 없습니다.

job.sh/home/user/scripts그런 다음 에 심볼릭 링크하는 스크립트가 있습니다 /home/user/bin/job. 사용자 정의 바이너리 경로가 포함되어 있으므로 .bashrccli에서 명령을 실행할 때마다 모든 것이 예상대로 작동합니다.job param1 etc

해당 명령은 cronjob을 통해 실행되어야 하지만 그렇지 않습니다. 반면에 cronjob이 ( /home/user/bin/job단순 경로 대신 job) 전체 경로를 참조하면 모든 것이 잘 실행됩니다.

이 문제를 해결하는 방법에 대한 조언이 있습니까?

답변1

cron의도적으로 제한된 환경(표준 셸과 다른 제한된 경로 포함)에서 실행됩니다.

스크립트(스크립트의 전체 경로 포함)를 실행한 다음 내부적으로 경로 변수를 설정하거나 crontab줄 자체에서 경로를 설정해야 합니다.

한 가지 예는,

12 0 * * * (export PATH=$PATH:/somedirectory; job)

실행 중인 모든 항목에 대한 전체 경로를 포함 crontab하고 실행된 스크립트에서 경로를 올바르게 설정하는 것이 실제로 더 안전합니다 cron.

관련 정보