cron에서 `/usr/sbin/` 바이너리를 어떻게 실행합니까?

cron에서 `/usr/sbin/` 바이너리를 어떻게 실행합니까?

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

관련 정보