RadarURL
유닉스/리눅스

Linux에서 Cron을 이용한 스케쥴러 관리

by JaeSoo posted Oct 20, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

오늘 이시간에는 cron 데몬을 이용한 스케쥴러 관리에 대해서 알아보도록 하자.

 

우선 Daemon의 정의가 무엇인지를 아는것이 이해의 첫번째 코스인것 같다.

 

[1] Daemon이란?

정의 : OS에서 백그라운드로 구동되고있는 프로세스 를 데몬이라고 부른다.

백그라운드에서 구동중인 데몬의 종류는 여러가지가 있지만, 대표적으로 스케쥴러 관리에 사용되는 데몬이 바로 cron데몬이다.

 

[2] Cron 데몬 설정방법

(1) 일반 User레벨에서의 Daemon 설정방법

- 유닉스계통의 시스템을 처음 Install 하고 나면 User레벨의 Cron은 별도 설정을 해주어야만 등록 가능하다. 등록하는 위치는 아래 경로와 같다.

 

/etc/cron.allow (Cron 사용가능하도록 유저를 등록한다.) 

/etc/cron.deny (Cron 데몬 사용 불가능하도록 유저를 등록한다.)

 

우선 /etc/cron.allow 파일을 새로 만들어서 등록 하도록 하자. 만약 이미 해당파일이 존재한다면 vi 에디터로 수정만 하면 될것이다.

 

 #vim /etc/cron.allow

 

ex ) 아래 예제처럼 엔터값을 넣으면서 입력하면된다.

 

 ==>요렇게 등록하면 된다. 이경우 ddong, dochi 두개의 계정에서 cron 등록 가능하다.

 

(2) Cron 데몬을 하기 위해 Shell Script를 작성하도록 한다. (아래 예제는 7일 단위로 DB를 백업하는 예제이다.)

 

(Shell Script 파일명 : db_cron_backup.sh)

 #! /bin/bash

DATE=`date +%Y%m%d%H%M%S`
HOME="/home/cron/log"
FILENAME="$HOME/BACKUP_SQL_$DATE.sql"

mysqldump -u root -proot1234 dbname > $FILENAME

DEL_TIME=`date --date '7 days ago' +%Y%m%d`
DEL_OBJ_FILE="$HOME/BACKUP_SQL_$DEL_TIME"

rm -rf $DEL_OBJ_FILE*

echo "********************************** AMT DB BACKUP *************************************"
echo "** TIME : $DATE                                                            **"
echo "** FILENAME : $FILENAME   **"
echo "** DELETE FILES : `ls $DEL_OBJ_FILE*`             **"
echo "**************************************************************************************"

 

위의 파일을 이제 Cron 데몬에 등록하도록 하자.

 

(3) Crontab 을 이용한 Cron 데몬 설치

 

(crontab 명령어 기술) 

 Crontab 명령어

설        명 

 #crontab -l

 현재 선택된 cron 데몬의 내용을 보여준다. 

 #crontab -e

 cron 데몬을 등록,수정 할 수 있다. 

 #crontab -r

 cron 데몬을 삭제 할 수 있다. 

 

(crontab 스케쥴러 등록 작성법)

입력 필드 

필드 의미 

범 위 

 1

분 

  0~59 

 2

  0~23

 3

  0~31 

 4

월 

  1~12

 5

요일

  0~7(1=월,2=화,...7=일,0=일) 

 6

실행 명령어

  쉘스크립트 실행명령어를 기록한다.

 

위 쉘 스크립트 의 경우 아래와 같이 등록하도록 한다.

 

(조건)

매일 24시 00분 00초에 실행되도록 한다.

 

(crontab -e 를 실행하여 작성한다)

# 10초단위로 실행된다.
0 0 * * * /home/cron/db_cron_backup.sh >> /home/cron/log/cron_db_backup.log

 

이렇게 하면  끝난다. 다음번에 기회가 생길때 시스템 관리자 관점의 root계정에서의 시스템 크론에 대해서 알아보도록 하자.

 

                                                                                                     - 2012.07.30 랑이씀 -


출처 : http://srzero.tistory.com/entry/Cron%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%8A%A4%EC%BC%80%EC%A5%B4%EB%9F%AC-%EA%B4%80%EB%A6%AC


Articles

21 22 23 24 25 26 27 28 29 30