crontab -e
루트로 스크립트를 추가하는 데 사용했습니다 . 그러나 스크립트는 바이너리를 사용하며 /usr/sbin/
스크립트가 cron에서 실행될 때 존재하지 않는다는 오류가 발생합니다. 이 문제를 어떻게 해결합니까?
답변1
바이너리의 전체 경로를 사용해야 합니다.
ipconfig
크론 작업에 사용하고 싶다고 가정해 보겠습니다 . crontab에 다음과 같은 명령을 사용하는 대신:
ipconfig
이를 다음과 같이 변경합니다.
/usr/sbin/ipconfig
기억하세요: 쉘 경로는 명령을 더 쉽게 입력할 수 있도록 명령줄에서 호출할 때 바이너리/실행 파일을 찾을 위치를 시스템에 알려줍니다. 바이너리/실행 파일에 대한 전체 경로를 제공하면 스크립트 사용과 100% 동일하게 작동합니다.
답변2
아마도 가장 깨끗한 접근 방식은 아니지만
crontab에서 PATH 변수를 설정하고 이를 crontab의 첫 번째 줄에 넣을 수 있습니다.
# start of crontab file
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# your cron entries below