T

cron 설정

Cron은 작업 스케줄링 기능을 제공하는 프로그램이다. 다시 말해 특정시간에 특정작업을 자동으로
수행하도록 하는 프로그램으로 대부분의 배포판에 기본적으로 설치되어 있다.
즉 정기적으로 새벽 2시에 데이터 백업을 받거나 특정일에 사용자들에게 메일을 보내든가 하는 작업을
미리 cron에 예약을 해두면 우리는 새벽 2시까지 백업을 받으려고 기다릴 필요도 없고,
특정일에 메일 보내는 것을 잊고 있어도 자동으로 메일이 발송 될 것이다.

이처럼 cron을 잘 사용하면 여러가지 번거로운 작업들을 자동으로 손쉽게 처리할 수 있다.
우선 래드햇 계열을 중심으로 설명을 해 보면 /etc/crontab 파일에 스케줄링 정보가 들어있다.
스케줄링 정보는 다음과 같은 규칙으로 기록하면 된다.



# 분 시 일 월 요일 명령

그리고 다음과 같이 필드를 채우면 된다.

# 분 (0시부터 59)
# 시 (0시부터 23)
# 일 (1시부터 31)
# 월 (1부터 12 혹은 jan,feb와 같은 형식으로도 기입가능)
# 요일 (0 부터 6.0이 일요일이면 mon, tue 와 같은 형식으로도 기입가능)
# 명령



그럼 /etc/crontab에 있는 예를 보면서 cron에 대해서 살펴보자

----------------------------------------------------------------

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

----------------------------------------------------------------

여기서 #run-parts라고 되어 있는 곳 밑에서부터 설정파일이 시작된다.
우선 첫째 줄부터 살펴보자. * 이라 되어 있는 부분은 all을 뜻하는 부분으로 매번 실행한다는 의미이다. 즉 첫째줄은 매월, 매주, 매일, 매시 01분마다 명령을 실행하라는 의미이다. 곧 한시간에 한번씩 명령을 실행하라는 의미이다. 뒤에 run-parts 부분이 의미하는 것은 /etc/cron.hourly 디렉토리에 있는 스크립트를 실행하라는 의미이다. 즉 스크립트 파일을 /etc/cron.hourly 폴더에 넣어두면 매시 1분마다 그 스크립트가 실행될 것이다.

마찬가지로 두번째 줄은 매일 4시 2분에 /etc/cron.daily 디렉토리에 있는 스크립트를 실행하라는 의미이고, 세번째 줄은 매 일요일 4시 22분마다 스크립트를 실행하라는 의미이다.

그래서 새벽 4시경에 서버에서 갑자기 시끄러운 소리가 나는 경우가 있는데 이는 cron에 예약된 스크립트가 실행되기 때문이다.

cron에 작업을 예약하는 방법으로 우선 첫번째는 스크립트를 짜서 /etc/cron.daily, /etc/cron.weekly 등의 폴더에 넣어두는 것이다.

그럼 간단한 스크립트를 만들어보자.


-----------------------------------------------------------------

tar zcvf db1.tar.gz /usr/local/mysql/data/db1 ; mv /root/db1.tar.gz /home/dearlars/backup


--------------------------------------------------------------

위의 스크립트는 /usr/local/mysql/data/db1의 내용을 압축파일로 만들어서
/home/dearlars/backup 폴더에 두는 기능을 한다. 즉 mysql에서 매일 백업받을 필요 없이
위처럼 파일을 작성하고 /etc/cron.daily 폴더에 두면 매일 자동적으로
백업 작업이 이루어지는 것이다.

즉 /etc/cron.daily 폴더에 위의 파일을 cron_test란 이름으로 저장하고 빠져 나온 뒤에
‘chmod +x cron_test’으로 실행권한을 준다.
그러면 crontab에 설정된 대로 매일 4시 2분마다 위의 스크립트가 실행될 것이다.
이처럼 작업내용을 스크립트로 만들어 실행 권한을 주고 /etc/cron.daily, /etc/cron.weekly등의
폴더에 넣어두면 일정 시간마다 스크립트가 자동으로 실행 된다.



또 다른 방법으로는 crontab 명령어를 이용해 주는 방법이 있다.

Crontab 명령어에는 다음과 같은 옵션을 줄 수 있다.

crontab -e : 작업할 내용 작성하기
crontab -l : 현재 설정되어 있는 작업내용 보기
crontab -r : 설정되어 있는 작업을 모두 삭제하기

우선 crontab -e 로 매일 새벽 5시마다 서버를 reboot 시키는 스크립트를 작성해보자

------------------------------------------------

0 05 *** reboot

------------------------------------------------

이처럼 crontab명령어를 이용해서 직접 원하는 시간에 작업할 내용을 설정해 줄 수 있다.
다 작성했으면 crontab -l 로 제대로 작성되었는지 확인해 보자.

#crontab -l


이처럼 간단하게 작업할 내용을 설정해 줄 수 있다.

그리고 기타 옵션을 살펴보면 콤마와 하이픈, 그리고 슬래쉬를 이용하는 옵션이 있다

0 4 1,10 * * 명령1

위 처럼 crontab을 편집하면 매월 1일과 10일 4시에 명령1을 실행한다는 의미이다. 또

0 4 1-10 * * 명령2

위처럼 crontab을 편집하면 매월 1일부터 10일동안 매일 명령2를 실행한다는 의미이다.그리고

0 4 */5 * * 명령3

라고 편집하면 매 5일마다 실행한다는 것으로 1일, 6일, 11일 등과 같이 5일 간격으로 실행한다는 의미이다.
그리고 그 외에 root 권한으로 다른 사용자의 crontab 파일을 편집하기 위해서는 다음과 같이 명령하면 된다.

crontab -u user -e

이제 다음 순서로 cron을 이용하여 정기적으로 미러링 하는 법에 대해서 알아보자.








-------------- cron으로 미러링 사이트 만들기 --------------------

cron 사용법에 대해서 알아봤다.

이제 이번에는 cron을 활용하여 내 서버를 미러링 사이트로 만드는 법에 대해서 알아보겠다.

우선 미러링하는 툴로써 rsync란 툴에 대해서 알아보자.

rsync란 프로그램은 미러링 할 때 유용하게 쓰이는 툴로써 다양한 옵션과 효율적인 데이터 전송으로

널리 쓰이고 있다. rsync 홈페이지(http://rsync.samba.org/)에서 프로그램을 다운로드 받을 수 있고,

배포판에 기본적으로 설치되어 있는 경우가 많다.

그러면 rsync가 설치되었다고 가정하고 간단하게 rsync 사용법에 대해서 알아보자.

기본적으로 다음과 같이 명령어를 내리면 된다.

rsync -avz --delete <미러링 할 서버경로> <미러링 받을 경로>


우선 해당 옵션에 대해서 살펴보면 다음과 같다.

-a : archive 모드로 전송
-v : 진행상황을 보여줌
-z : 파일 데이터를 압축해서 전송
--delete : 미러링 할 서버에는 없고, 미러링 받을 경로에만 있는 파일들 삭제.

예로써 slackware 사이트를 미러링 하려면 쉘 상에서 다음과 같이 명령을 내리면 된다.

$ rsync -avz --delete ftp.slackware.com::slackware /home/dearlars/mirror/slackware


여기서는 ftp.slackware.com 밑의 slackware폴더에 있는 내용을

내 서버의 /home/dearlars/mirror/slackware로 미러링 하는 것이다.

이러한 작업을 cron에 예약해두면 정기적으로 미러링을 할 수 있게 되고,
또 부하가 많이 걸리는 시간을 피해서 미러링 할 수 있게 된다.
그러면 다음처럼 crontab을 편집해 보자.

------------------------------------------------------------------------

0 05 *** rsync -avz --delete ftp.slackware.com :: slackware /home/dearlars/mirror/slackware

------------------------------------------------------------------------
이러면 정해진 시간에 미러링을 받을 수 있게 된다.

이처럼 cron을 사용하면 반복되는 작업을 자동적으로 처리할 수 있고,

원하는 시간에 자동적으로 작업을 처리할 수 있다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
20년 전 조회 3,673
20년 전 조회 2,073
20년 전 조회 3,560
20년 전 조회 2,477
20년 전 조회 2,905
20년 전 조회 2,207
20년 전 조회 3,328
20년 전 조회 2,919
20년 전 조회 3,043
20년 전 조회 2,139
20년 전 조회 1,851
20년 전 조회 2,338
20년 전 조회 1,971
20년 전 조회 1,668
20년 전 조회 1,856
20년 전 조회 3,944
20년 전 조회 1,674
20년 전 조회 2,011
20년 전 조회 2,347
20년 전 조회 1,823
20년 전 조회 2,954
20년 전 조회 2,005
20년 전 조회 2,088
20년 전 조회 3,650
20년 전 조회 2,967
20년 전 조회 2,091
20년 전 조회 1만
20년 전 조회 2,230
20년 전 조회 1,575
20년 전 조회 2,649
20년 전 조회 2,264
20년 전 조회 1,661
20년 전 조회 1,464
20년 전 조회 1,891
20년 전 조회 1,687
20년 전 조회 1,721
20년 전 조회 2,335
20년 전 조회 1,539
20년 전 조회 1,479
20년 전 조회 1,622
20년 전 조회 2,714
20년 전 조회 1,789
20년 전 조회 1,844
20년 전 조회 1,970
20년 전 조회 1,793
20년 전 조회 1,869
20년 전 조회 1,688
20년 전 조회 2,058
20년 전 조회 1,776
20년 전 조회 2,552
20년 전 조회 2,258
20년 전 조회 2,542
20년 전 조회 1,474
20년 전 조회 1,573
20년 전 조회 2,147
20년 전 조회 1,607
20년 전 조회 3,741
20년 전 조회 2,629
20년 전 조회 2,065
20년 전 조회 2,767
20년 전 조회 1,721
20년 전 조회 1,595
20년 전 조회 2,545
20년 전 조회 1,466
20년 전 조회 1,712
20년 전 조회 3,213
20년 전 조회 1,865
20년 전 조회 1,593
20년 전 조회 4,923
20년 전 조회 4,561
20년 전 조회 3,501
20년 전 조회 3,768
20년 전 조회 7,046
20년 전 조회 3,536
20년 전 조회 2,602
20년 전 조회 2,597
20년 전 조회 7,155
20년 전 조회 4,568
20년 전 조회 1,874
20년 전 조회 3,234
20년 전 조회 1,933
20년 전 조회 1,537
20년 전 조회 2,285
20년 전 조회 1,770
20년 전 조회 1,443
20년 전 조회 1,786
20년 전 조회 2,956
20년 전 조회 2,431
20년 전 조회 1,710
20년 전 조회 1,634
20년 전 조회 3,965
20년 전 조회 2,907
20년 전 조회 3,628
20년 전 조회 3,422
20년 전 조회 3,727
20년 전 조회 8,556
20년 전 조회 2,579
21년 전 조회 3,735
21년 전 조회 3,185
21년 전 조회 2,584