사이트 내 전체검색
[linux] crontab의 사용법
로빈아빠
https://cmd.kr/server/143 URL이 복사되었습니다.

본문

crontab의 사용법

cron은 일정관리 명령어로서 일정관리 파일(crontab)에 따라 주기적인 명령을수행한다. 이 일정관리 파일에는 명령이 수행될 시간, 수행할 로그인명 등이
포함된다. 시스템에 따라서 /usr/lib/crontab이나 /etc/crontab파일이 있으며 crontab디렉토리가 따로 존재할 수도 있다.

crontab은 7개의 필드로 구성되는데 6번째 필드는 생략하여도 무방하다.
          +----------------------------------------------+
          | 분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령 |
          +----------------------------------------------+
상기의 형식에서 사용자필드는 명령이 수행될 사용자명을 지정하고 명령필드는 수행하고자 하는 명령어와 인자를 적어주면 된다. 시간을 나타내는 1~5번째의 필드는 그 시간들을 무시하고자 할때 *로 표시하게 된다. 요일필드의 경우에는 월요일부터 금요일까지를 나타내며 순서대로 1~5로 표시하게 된다. 그리고 하나의 필드에 중복된 내용을 기재하고자 하면 콤마(,)로 구분하면 된다. 연속된 내용을 기록하고자 하면 하이픈(-)을 이용하여 기간을 나타낸다. 또한 슬래쉬(/)를 사용한 내용도 있는데 이는 시간의 경우에 23-7/2라면 23시부터 07시까지 매 2시간마다 라는 의미를 가지고 있다. 시간필드에서 */2라면 매 2시간마다라고 해석하면 된다.

  0,30 * 1,15 * 1-5 fsck -y
상기의 예에서 보면 매달 1일과 15일날 30분마다 요일에 관계없이 fsck -y명령을 실행하도록 되어 있다.(위의 예는 있을 수 없는 상황이겠지만 예로 들어본다.)
이러한 방식으로 명령어필드에 여러가지의 내용을 넣을 수 있다.
20 1 * * * root find /tmp -atime +3 -exec rm -f () ';'
매일 새벽 1시 20분에 3일간 접근하지 않은 /tmp내의 파일을 삭제하는 내용
0 4 * * * root find / -xdev -name core +7 -exec rm -f {}';'
매일 새벽 4시 정각에 지난 일주일간 접근하지 않은 core파일들을 삭제한다. -xdev옵션은 독립형시스템이면 사용하지 않아도 된다.
수정하는 방법은 리눅스의 경우에는 crontab -e명령으로 에디팅을 할 수 있다.
수정하기 전에 지금 등록된 crontab을 보고자 하면 -l옵션을 사용하고 등록된
내용을 삭제하려면 -d옵션을 사용하면 된다.(-r옵션을 사용하는 유닉스도 있다.)
실행결과는 메일로 알려주게 되므로 자신의 메일을 읽어보면 된다.
crontab을 직접 고칠 수 없는 상황이면 crontab을 -l옵션을 사용하여 새로운
화일명으로 리다이렉션 받아서 편집한 뒤에 crontab filename의 형태로 등록하면 된다. 리눅스의 경우에는 /var/spool/cron/crontabs/에 자신의 계정을 화일명으로 crontab이 존재하고 있다. 이를 수정하여 자신에게 맞추거나 또는 새롭게 생성하 면 되겠다.

Unix system administration handbook second edition 중에서
필요한 부분만 추려서 제 마음대로 해석하고 편집한 것이니
참고하십시오.

-나우누리 리눅스 동호회 -

댓글목록

등록된 댓글이 없습니다.

1,139 (16/23P)

Search

Copyright © Cmd 명령어 3.133.108.224