메뉴 건너뛰기

리눅스 관련 모음

본문시작

2011.05.12 13:51

crontab 설정

조회 수 45044 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

국산 통나무 수공예 남원제기, 남원목기

자료가 도움이 되셨다면
혼수용품제수용품 필요시
남원제기 공식 홈페이지 http://남원제기.kr
남원목기 공식 홈페이지 http://otchil.kr
에서 구매 해 주세요
정성껏 모시겠습니다.
 
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을 사용하면 반복되는 작업을 자동적으로 처리할 수 있고,

원하는 시간에 자동적으로 작업을 처리할 수 있다.


[출처] http://qdata.co.kr/bo/bbs/board.php?bo_table=ltip&wr_id=92
   

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
190 한국에 맞는 스팸어쎄신 설정하여 스팸 95% 줄여보기 햇빛소년 2011.03.18 50196
189 에러해결 푸시 앱 연동과 카카오톡 링크 에러 해결을 마무리 하면서.. 햇빛소년 2015.09.18 1660
188 설치관련 페도라 epel-release 업데이트 햇빛소년 2014.03.04 3544
187 파이프, 필터, 리다이렉션 햇빛소년 2011.04.16 48491
186 에러해결 특정 디렉토리에 있는 파일 또는 디렉토리의 퍼미션 변경 햇빛소년 2013.01.11 24938
185 커널 컴파일 후 모듈 추가하기... 햇빛소년 2012.07.06 26524
184 설치관련 처음 설치 해 보는 mariadb 소스설치 햇빛소년 2014.10.16 5626
183 참고로 보기 위한 좋은 글 -- q메일 및 스팸서버 구축에 관한 글 [펌] 햇빛소년 2012.06.19 39507
182 유동아이피를 고정아이피로 만들기 햇빛소년 2011.06.20 38319
181 설치관련 유동IP(DDNS)+공유기+apache서버1+apache서버2+proxy로 도메인 포워딩. secret 햇빛소년 2014.10.28 3480
180 윈도우에서 내 컴퓨터 ip주소 확인하기 햇빛소년 2011.06.20 38099
179 설치관련 원격 서버에 파일 올리거나 가져오기... 1 햇빛소년 2014.02.22 9134
178 요긴하게 사용되는 리눅스 명령 모음. 햇빛소년 2011.04.07 44156
177 실제 예(passwd명령어)로 SetUID, SetGID 이해하기 햇빛소년 2011.05.12 50477
176 설치관련 스팸어쎄신(spamassassin)은 설치 후 service등록과 업데이트를 한번 더 해 줘야 한다. 햇빛소년 2012.05.10 29481
175 센드메일(sendmail) RBL 이용하여 해외, 국내 스팸 차단하는 법. 햇빛소년 2012.12.06 21172
174 서버설치후 해야할 일 file 햇빛소년 2011.05.12 44095
173 보안 관련하여 한번쯤 읽어 볼 거리.... 햇빛소년 2012.07.12 35165
172 설치관련 메일계정 관련 명령어... secret 햇빛소년 2013.08.19 0
171 설정 및 사용법 메일(mail) 인증 설정 및 발송 확인 테스트 햇빛소년 2016.05.26 1093
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10