본문 바로가기
Dev/Oracle

[Oracle] Crontab 스크립트가 작동하지 않을 때

by 흰바다제비 2022. 8. 31.
728x90

rman 백업을 crontab에 걸어주었는데, 실행이 되지 않았다.

mv, echo와 같은 다른 명령어는 작동하지만 rman target / 과 이후 run 구문만 실행이 안된채 스크립트가 종료된다.

 

oracle 계정의 cron에 걸어주었고, 스크립트만 따로 실행해보면 rman 백업이 잘 진행된다.

 

원인은 환경 변수가 들어가있지 않아서 실행이 안되었던 것.
cron은 새로운 shell로 환경변수가 백지인 상태에서 시작한다고 한다.

스크립트 내에 모든 환경 변수를 설정해주니 정상적으로 스크립트가 실행된다.

 

 

기존에 있던 설정도 어느정도 넣어준 상태였지만, profile의 설정을 모두 넣어주는게 마음 편할 것 같다.

  • 기존 설정
#!/bin/bash

########## Oracle ###########
umask 022
export ORACLE_SID=ORCL
export ORACLE_UNQNAME=ORCL
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/192
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
 
###################################################################
# ORCL db backup @since: 19.08.2022 @author: JEKWON
###################################################################

export PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 
export BKDIR=/backup/db/rman
export BKDIROLD=/backup/db/rman_old

 

  • .profile 설정 적용
#!/bin/bash

########## Oracle ###########
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=ORCL
export ORACLE_UNQNAME=ORCL
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/192
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
 
###################################################################
# ORCL db backup @since: 19.08.2022 @author: JEKWON
###################################################################

export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$GI_HOME/bin:$PATH:$ORACLE_HOME/OPatch:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
 
export BKDIR=/backup/db/rman
export BKDIROLD=/backup/db/rman_old

umask 022
export TERM=vt220
export EDITER=vi
export LANG=C
export LC_ALL=C

 

 

지금 보니 PATH 설정이 달라서 그랬던 것 같기도 하고,,

아무튼 이 스크립트 하나만 봐도 어디서든 실행할 수 있도록 설정하자.

 


참고

 

CRONTAB이 작동을 안하는 이유는 뭘까요? | KLDP

Red Hat Enterprise Linux AS release 3 (Taroon Update 2) Kernel 2.4.21-15.ELsmp on an i686 여기에서 crontab에 뭔가를 등록하고 사용하려고 하는데... 작동을 안하는군요. 에...누가 먼저 뭔가를 설치를 해놓기는 했습니

kldp.org

 

728x90

댓글