크론 환경 변수

크론 환경 변수

cron나는 실행되지 않는 로그인 셸에서 잘 실행되는 간단한 셸 스크립트를 실행하고 있습니다 . 어떤 이유로 셸에서 실행될 때 /usr/local/bin실행될 때 사용자 경로에 없습니다 .cron

환경은 어디에서 cron결정됩니까?

답변1

일반적으로 에 대해 설정된 비로그인 환경에서 /bin/sh, 이는 명령을 실행하는 데 사용되는 기본값입니다.

대부분의 버전에서는 crontab에서 추가 환경 변수를 설정할 수 있습니다.

PATH=/usr/local/bin:/usr/bin:/bin
@reboot whatever

자세한 내용을 확인하세요 crontab(5).man 5 crontab

답변2

스크립트가 어떤 쉘을 사용하고 있는지 확인하십시오.

crontab의 쉘과 변수는 /etc/crontab에 지정됩니다.

x@x:~$ cat /etc/crontab 

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

sh에서 사용하는 프로필 파일은 사용자 홈에 있습니다.

x@x:~$ ls ~/.profile 
/home/x/.profile

이 파일 끝에 PATH 변수를 추가할 수 있습니다(올바른 사용자의 프로필 파일에 추가하고 있는지 확인하세요).

PATH="$PATH:/usr/local/bin"

또는 자신의 스크립트에 동일한 줄을 추가할 수 있습니다.

관련 정보