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>
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
20년 전 조회 3,717
20년 전 조회 2,111
20년 전 조회 3,604
20년 전 조회 2,513
20년 전 조회 2,949
20년 전 조회 2,246
20년 전 조회 3,365
20년 전 조회 2,959
20년 전 조회 3,085
20년 전 조회 2,171
20년 전 조회 1,890
20년 전 조회 2,379
20년 전 조회 2,013
20년 전 조회 1,700
20년 전 조회 1,891
20년 전 조회 3,989
20년 전 조회 1,713
20년 전 조회 2,040
20년 전 조회 2,379
20년 전 조회 1,859
20년 전 조회 2,991
20년 전 조회 2,047
20년 전 조회 2,120
20년 전 조회 3,684
20년 전 조회 3,005
20년 전 조회 2,128
20년 전 조회 1만
20년 전 조회 2,260
20년 전 조회 1,616
20년 전 조회 2,681
20년 전 조회 2,298
20년 전 조회 1,696
20년 전 조회 1,499
20년 전 조회 1,925
20년 전 조회 1,726
20년 전 조회 1,760
20년 전 조회 2,359
20년 전 조회 1,570
20년 전 조회 1,514
20년 전 조회 1,657
20년 전 조회 2,739
20년 전 조회 1,815
20년 전 조회 1,881
20년 전 조회 2,001
20년 전 조회 1,824
20년 전 조회 1,909
20년 전 조회 1,724
20년 전 조회 2,090
20년 전 조회 1,815
20년 전 조회 2,589
20년 전 조회 2,285
20년 전 조회 2,575
20년 전 조회 1,504
20년 전 조회 1,607
20년 전 조회 2,173
20년 전 조회 1,642
20년 전 조회 3,777
20년 전 조회 2,664
20년 전 조회 2,095
20년 전 조회 2,796
20년 전 조회 1,752
20년 전 조회 1,636
20년 전 조회 2,580
20년 전 조회 1,496
20년 전 조회 1,745
20년 전 조회 3,247
20년 전 조회 1,894
20년 전 조회 1,630
20년 전 조회 4,958
20년 전 조회 4,591
20년 전 조회 3,527
20년 전 조회 3,796
20년 전 조회 7,077
20년 전 조회 3,563
20년 전 조회 2,635
20년 전 조회 2,628
20년 전 조회 7,193
20년 전 조회 4,598
20년 전 조회 1,905
20년 전 조회 3,263
20년 전 조회 1,963
20년 전 조회 1,563
20년 전 조회 2,315
20년 전 조회 1,798
20년 전 조회 1,467
20년 전 조회 1,819
20년 전 조회 2,995
20년 전 조회 2,457
20년 전 조회 1,750
20년 전 조회 1,672
20년 전 조회 3,999
20년 전 조회 2,938
20년 전 조회 3,660
20년 전 조회 3,454
20년 전 조회 3,756
20년 전 조회 8,585
20년 전 조회 2,603
21년 전 조회 3,762
21년 전 조회 3,215
21년 전 조회 2,611