리눅스 스케쥴링 crontab > 온라인강의

본문 바로가기
 
 
 
오늘 1,589
어제 1,674
최대 2,526
전체 3,401,156

최근 방문자

1706
1573
932
869
1674
1589
22 23 24 25 26 27
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

select * from g5_menu where me_use = '1' and me_link like '%lecture%'
온라인강좌 홈 > 온라인강좌 > 온라인강좌

Linux | 리눅스 스케쥴링 crontab

페이지 정보

작성일2012-03-02 18:38 조회6,523회 댓글0건

본문

주기적으로 반복적인 일이나 자동으로 특정 시간에 실행등을 위해서 자주 사용하는 방법 중에 하나가 cron이다.


사용 형식
#crontab [ -u 사용자 id] 파일
# crontab [-u 사용자 id] { -l | -r | -e}
 
#crontab -e [username] : 예약된 작업리스트
#crontab -l [username] : 예약된 작업 수정
#crontab -r [username] : 예약된 작업 삭제
#crontab [filename]
 
@ crontab : 미리 설정된 시간에 사용자 명령을 실행하기 위해 사용
@ crontab 명령은 특정 사용자에 대한 스케쥴이 가능하며 root(관리자) 만이 [username] 매개변수를 사용 가능
 
crond 시작
=> /etc/rc.d/init.d/crond start{restart | stop}

일반사용자에게 crontab 명령어 사용하도록 설정 허가
=> /etc/cron.allow 여기에 ID 등록
 
일반사용자의 crontab 명령어사용을 제한하고자 한다면
=>/etc/cron.deny  에 ID를 등록
즉,
=> /etc/cron.allow : 허용할 사용자 ID 목록
=> /etc/cron.deny  : 거부할 사용자 ID 목록

cron.allow 파일이 있으면 이 파일에 들어있는 ID만 사용 가능
cron.deny  파일이 있으면 이 파일에 들어있는 ID는 사용 불가

따라서 cron.deny에 truefeel ID를 추가해주면 됩니다.
 

crontab 파일형식
Minutes Hours Date Month Day-ofWeek command

설명
Minutes :  [0-59]
Hours :  [0-23]
Date : [1-31]
Month : [1-12]
Day-ofWeek :[0-7], 0 or 7(일요일), 1(월요일), 2(화요일), 3(수요일), 4(목요일), 5(금요일), 6(토요일)
command : 스크립트 파일 또는 bourne 쉘 파일
 

※ 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
※ # 으로 시작하는 줄은 실행하지 않는다 (주석)
※ command를 제외한 모든 필드에 와일드 카드문자(*) 사용가능
※ 필드에 "-" 기호를 사용해서 범위 지정 가능
ex) 30 1 * 2,4,6,8,10,12 3-5 /usr/bin/wall /var/tmp/message
      이 명령은 2개월 마다 수요일부터 금요일까지 1시 30분에  wall 명령을 사용해서 시스템의 모든 사용자에게 메시지를 전송
※ crontab -e 을 하면 vi 에디터가 나온다.(환경변수 EDITOR에 따라 다른 에디터를 사용할 수 있다.)
 
시간 설정에서 몇가지 의미있는 것들을 알아보자.
- '*'표시는 해당 필드의 모든 시간을 의미한다.
- 3,5,7 와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다.
  (2~10까지 3간격으로. 즉, 3,6,9를 의미함)

=>  > /dev/null  2>&1 이 무슨 뜻입니까?
  지정한 명령어 처리 결과와 발생할지 모르는 에러메시지를 출력하지 않고 모두 버린다는(/dev/null)는
  뜻입니다. 만약 결과와 에러를 파일로 저장하려면 /dev/null 대신 파일명을 적어주면 됩니다.

예)
20  2     *  *  6  명령어 => 매주 토요일 새벽 2:20
0  4-6   *  *  *  명령어 => 매일 오후 4,5,6시
5  */2 *  *  * 명령어 => 매일 2시간간격으로 5분대에
15  1   1  *  *  명령어 => 매월 1일 새벽 1:15
30  0   1  1,7  *  명령어 => 1,7월 1일 새벽 0:30
 

/etc/crontab 파일로 설정
매시 1회 자동실행하기 위한 시스템 크론 설정
01 * * * * root run-parts /etc/cron.hourly
  - 매일 매시 01분마다 /etc/cron.hourly 디렉토리내에 존재하는 파일들을 실행

매일 1회 자동실행하기 위한 시스템 크론설정
02 4 * * * root run-parts /etc/cron.daily
 - 매일 새벽 4시 02분마다 /etc/cron.daily  디렉토리내에 존재하는 파일들을 실행

매주 1회 자동실행하기 위한 시스템 크론설정
22 4 * * 0 root run-parts /etc/cron.weekly
 - 매주 일요일 새벽 4시 22분마다 /etc/cron.weekly 디렉토리내에 존재하는 파일들을 실행

매월 1회 자동실행하기 위한 시스템 크론설정
42 4 1 * * root run-parts /etc/cron.monthly
 ->매월 1일 새벽 4시 42분마다 /etc/cron.monthly 디렉토리내에 존재하는 파일들을 실행


※ 경고
실수로 인수를 지정하지 않고 crontab 명령을 입력했을 경우, CTRL-D를 눌러 종료금지.
만일 위의 작업 실행 시 crontab 파일의 모든 항목이 삭제됩니다.
대신 중지 문자(일반적으로 CTRL-C)를 눌러 종료


----- Q&A -----

P: crontab 파일을 편집했지만 계속 실행되지 않습니다.
S: vi와 같은 텍스트 편집기로 직접 crontab 파일을 편집하면 안됩니다. crontab -e 명령을 사용하면 vi를 호출한 다음 변경된 내용을 cron에 알립니다.

P: crontab -e 명령을 사용해서 crontab 항목을 모두 삭제했지만 crontab -l 명령을 실행하면 삭제한 항목이 나옵니다.
S: crontab 파일을 모두 삭제하려면 crontab -r 명령을 사용하십시오. crontab -e 명령은 빈 파일을 처리하지 못하기 때문에 변경된 내용을 업데이트하지 못합니다.

Q: **** 편집기를 사용할 수 있습니까?
A: 예, 환경 변수 EDITOR를 ****으로 설정하면 됩니다.

Q: cron 작업이 중단될 때 전자 우편 메시지를 받는 것은 왜 그렇습니까?
A: 표준 출력 양식이 없기 때문입니다.
   이 메시지를 받지 않으려면 명령을 출력할 장치(/dev/console, /dev/null)나 파일을 지정하십시오.

P: 4.1 이전 시스템을 사용하고 있는데, 가끔 cron 작업이 두 번씩 중단됩니다.
S: 1022379에 대한 패치 100058-01을 전송하십시오.

Q: cron이 정상적으로 실행되고 있는지 확인할 수 있습니까?
A: crontab 파일에 "** * * * date > /dev/console" 항목을 추가하십시오. 그러면 매분마다 콘솔에 날짜가 출력됩니다.

고급 문제:

Q: cron을 사용할 수 있는 사용자를 제한할 수 있습니까?
A: /var/spool/cron/cron.allow 파일을 사용하면 cron 작업을 실행할 수 있는 사용자를 지정할 수 있습니다.
   /var/spool/cron/cron.allow 파일이 없으면 crontab이 /var/spool/cron/cron.deny 파일을 통해 작업을 실행할 수 없는 사용자를 확인합니다.
   두 파일 모두 없으면 root만이 cron 작업을 실행할 수 있습니다


자료인용
http://blog.daum.net/wiznel/4653739
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


목록

Total 2,007건 1 페이지
온라인강의 목록
번호 제목
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997
1996
1995
1994
1993
1992
1991
1990
1989
1988
1987
1986
1985
1984
1983
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2017 해피정닷컴. All rights reserved. 부가통신사업신고:서울체신청-1217 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기