crontab command not found 에러현상
crontab 에 등록하지 않고 터미널에서 수행 시 정상적으로 되던 스크립트가 crontab 에만 등록하면 오류가 발생하였습니다.
문제의 원인을 찾고자 사용자 계정의 로그(메일)를 확인하니 아래와 같이 에러가 발생했습니다.
$ cat /var/spool/mail/sh ... /home/sh/goldilocks_backup.sh: line 199: gsqlnet: command not found
crontab command not found 에러원인
crontab 에 등록되어 있다고는 하지만, 사용자 계정에서 실행하였으므로
당연히 사용자의 환경변수를 물고 올라갈거라고 생각했는데 crontab 에서 환경변수를 출력하니 전부 빈 값이었습니다.
환경변수가 잡혀있지 않으니 gsqlnet 명령어를 을 찾을 수 없었고, 이 때문에 에러가 발생하였습니다.
예를들어 보겠습니다.
.bash_profile 에는 GOLDILOCKS_HOME 이라는 환경변수가 잡혀있습니다.
$ cat .bash_profile export GOLDILOCKS_HOME=$HOME/goldilocks_home export PATH=$GOLDILOCKS_HOME/bin:$PATH $ echo $GOLDILOCKS_HOME /home/sh/goldilocks_home
이러한 환경변수를 스크립트에서 수행하면 이렇게 출력됩니다.
# 스크립트 Logging "${info}" "GOLDILOCKS_HOME = ${GOLDILOCKS_HOME}" Logging "${info}" "PATH = ${PATH}" Logging "${info}" "HOME = ${HOME}" Logging "${info}" "USER = ${USER}" # 출력결과 [2018-11-10 21:59:01] [INFORMATION] GOLDILOCKS_HOME = [2018-11-10 21:59:01] [INFORMATION] PATH = /usr/bin:/bin [2018-11-10 21:59:01] [INFORMATION] HOME = /home/sh [2018-11-10 21:59:01] [INFORMATION] USER = sh
이렇게 출력되는 이유는 메일 내용을 확인하면 crontab 이 시작될 때 아래의 환경변수만 물고 올라오기 때문입니다.
Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=9691> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/1000> X-Cron-Env: <LANG=ko_KR.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/home/sh> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=sh> X-Cron-Env: <USER=sh>
crontab command nof found 해결방법
쉘 스크립트에 사용자가 지정한 환경변수를 등록해줍니다.
# 스크립트 ################################################################## # For Crontab ################################################################## export GOLDILOCKS_HOME=/home/sh/goldilocks_home export PATH=$GOLDILOCKS_HOME/bin:$PATH
이 후, 스크립트가 정상적으로 수행되었습니다.
'Linux > 명령어' 카테고리의 다른 글
[LINUX] fio 사용법, Disk BandWidth, IOPS 측정하기 (1) | 2018.06.27 |
---|---|
[LINUX] nmon 리눅스 모니터링 유틸리티, nmon 엑셀 분석하기 (0) | 2018.06.19 |
gdb (0) | 2018.04.27 |
[LINUX] iperf 네트워크 속도측정하기 (0) | 2018.04.18 |
[LINUX] pstack 프로세스 스택 추적하기 (0) | 2018.03.14 |