본문 바로가기

개발/shell

crontab 걸기

오라클데이타 베이스에 주기적으로 데이타의 내용을 갱신하거나 통계나 평균같은 배치작업을
돌려야하는 경우 유닉스 시스템에서 제공하는 cron을 이용하여 작업할수 있다.

1. 일단, 작업할 질의문을 sql화일로 저장해놓고 - 임의로 sample.sql로 하겠다 -
   해당 질의문을 수행할수있는 쉘스크립터 - 임의로 sample_batch.sh로 하겠다 - 를 만든다.
   => 쉘안에 환경설정들을 자알~ 넣어주세요.

   ---------------------------------------------------------------------
   예1) sample.sql

     create table jumsu_avg as
     select j_num, birthyear, avg(jumsu) as j_avg from jumsu_tabs
        group by j_num,birthyear;
   ---------------------------------------------------------------------
   예2) sample_batch.sh

     export ORACLE_BASE=/home/oracle/app/oracle
     export ORACLE_HOME=$ORACLE_BASE/product/815
     export ORACLE_SID=ORA8
     export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
     export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$ORACLE_HOME/jdbc/lib
     export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
     export TNS_ADMIN=$ORACLE_HOME/network/admin
     export PATH=$PATH:.:/usr/sbin:/usr/bin:/sbin:/bin:/usr/ccs/bin:$ORACLE_HOME/bin
     export NLS_LANG=American_america.KO16KSC5601
     export TMPDIR=$ORACLE_BASE/tmp

     sqlplus sdoseduc/sdoseduc @sample > sample_batch.log
   ---------------------------------------------------------------------
      
2. root로 계정을 바꾸어 /var/spool/cron안에 각각 계정이름으로 되어 있는 cron화일이
   존재하는 오라클접근권한이 있는 계정화일 - 대부분 oracle 이란 계정을 사용함 -을
   생성하여 해당 스크립터가 언제 작업하면 될지를 지정해놓는다.
   ---------------------------------------------------------------------
   예3) oracle

   00 01 * * *  bash /home/oracle/sample_batch.sh &
   ---------------------------------------------------------------------
   => 매일 새벽 1시에 해당 화일을 돌리도록 설정한 것. (분,시,일,월,년의 순서)

3. 이것으로 끝나는 것이 아니라 cron이 다시 수행되도록 만들어야 하므로
   cron데몬을 다시 수행시켜야 한다.
   ---------------------------------------------------------------------
   예4) /etc/rc.d/init.d/crond restart

   Stopping Cron [ OK ]
   Starting Cron [ OK ]
   ---------------------------------------------------------------------

'개발 > shell' 카테고리의 다른 글

리눅스 명령어모음 [자주쓰는것]  (0) 2012.02.05
리눅스 명령어 모음 [알파벳순]  (0) 2012.02.05
리눅스에서 CVS 설치  (0) 2012.02.05
cvs설치  (0) 2012.02.05
cvs설치  (0) 2012.02.05