crontab 실행시 오류

shd0101·2023년 4월 3일
0

자바웹개발자.log

목록 보기
2/2
post-thumbnail

리눅스에서 쉘 작성 후 실행 시에는 정상적으로 결과를 보여주었으나
crontab에 등록 후 실행 하니 "command not found"라는 오류가 났다.

/home/error_check.sh: line 13: psql: command not found

참조링크 : command not found

shell의 환경 변수와 crontab의 환경 변수가 달라서 발생을 하게 되었습니다.

환경변수 확인

$ echo $PATH
home/a/:/home/b/bin:/home/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/.local/bin:/home/bin:

터미널에에서 출력해보니 PATH로 지정 된 여러 경로가 나왔지만 ,

쉘에 "echo $PATH" 추가 하여 crontab으로 실행해보니

/usr/bin:/bin

환경변수가 서로 다르다는 것을 확인했습니다.

해결방안

여러 해결 방법이 있었지만 저의 경우 crontab 설정부 최상단에 PATH를 지정하여, 환경변수를 동기화 시켜 해결 하였습니다.

$ contab -e
$ i
===================================
PATH="home/a/:/home/b/bin:/home/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/.local/bin:/home/bin:"

* * * * * /home/error_check.sh

번외로 다른 서버에서 sqlplus 못 찾는 경우가 발생

기존 로그인 계정으로 환경변수를 확인한 후 해당 경로들을 복사하고

echo $SID_NAME
echo $ORACLE_HOME
echo $PATH

문제가 되는 쉘스크립트에 export 추가 하여 해결

export ORACLE_HOME="/oracle/app/client/12c"
export PATH="$ORACLE_HOMR/bin:$PATH"

0개의 댓글