티스토리 뷰
시스템을 사용하다 보면 주기적으로 반복해야 하는 작업이 있다. 예를 들어 매주 백업을 받거나, 매일 아침 시스템의 상태를 자동으로 확인하여 정해진 시간에 관리자에게 메일로 보내는 것 등이다. 이럴 때 작업 예약을 사용하면 잊지않고 필요한 작업을 실행하고 효율적으로 업무를 처리할 수 있다.
정해진 시간에 반복 실행
지정 시간이 되면 반복적으로 실행하도록 설정하는 crontab 명령을 알아보자
기능 사용자의 crontab 파일을 관리한다.
형식 crontab [-u 사용자 ID][옵션][파일 이름]
옵션 -e : 사용자의 crontab 파일을 편집한다.
-l : crontab 파일의 목록을 출력한다.
-r : crontab 파일을 삭제한다.
crontab 파일 형식
crontab 명령으로 관리하는 파일은 사용자별로 생성되는데 이 파일에 반복 실행할 작업이 저장된다. crontab 파일에는 여러개의 작업을 저장할 수 있으며, 한 행에 하나의 작업을 설정한다. crontab 파일의 한 행은 다음과 같이 여섯 항목으로 구성되어 있다.
분(0~59) |
시(0~23) |
일(1~31) |
월(1~12) |
요일(0~6) |
작업내용 |
앞의 다섯항목은 시간과 날짜를 나타내는 숫자이고 마지막 항목이 반복적으로 수행할 명령이다. 시간과 날짜를 나타내는 항목들의 순서와 값은 다음과 같다. 이 중 요일은 0이 일요일, 1이 월요일, 6이 토요일을 나타낸다. 각 항목은 공백 문자로 구분하며, 만약 항목의 값이 *이면 이는 해당 항목의 모든 값을 의미한다.
crontab 파일 생성하고 편집하기 : crontab -e
crontab 파일의 생성과 편집은 crontab -e 명령으로 수행한다. crontab 편집기로는 기본적으로 VISUAL 또는 EDITOR 환경 변수에 지정된 편집기를 사용한다. 필요할 경우 명시적으로 편집기를 지정할 수 있다.
crontab -e 명령으로 파일을 편집해보자. crontab -e 명령을 실행하면 다음과 같이 crontab 파일 작성과 관련된 설명이 주석으로 처리된 파일이 열린다. 이 파일의 가장 마지막에 설정 내용을 입력하면 된다.
crontab -e 명령으로 편집한 파일을 저장하면 자동적으로 /var/spool/cron/crontabs 디렉터리에 사용자의 이름으로 생성된다. 이 디렉터리도 일반 사용자가 접근할 수 없으며 시스템 관리자만 접근이 가능하다.
crontab 파일 내용 확인하기 : crontab -l
crontab -l을 실행하면 현재 사용자의 crontab 파일 내용을 출력한다.
crontab 파일 삭제하기 : crontab -r
crontab 파일을 삭제하려면 crontab -r 명령을 사용한다. 만약 시스템 관리자가 특정 사용자의 crontab을 삭제하려면 'crontab -u user1 -r'과 같이 삭제하려는 사용자 ID를 지정한다.
crontab 명령 사용 제한하기
crontab 명령도 /etc/cron.allow 파일과 /etc/cron.deny 파일로 crontab 명령 사용 권한을 제한할 수 있다. 이 파일들에는 한 줄에 사용자 이름을 하나씩만 기록한다. cron.deny 파일은 기본적으로 있지만 cron.allow 파일은 관리자가 만들어야 한다. 이 두 파일의 적용 기준은 다음과 같다.
⊙ /etc/cron.allow 파일이 있으면 이 파일에 있는 사용자만 crontab 명령을 사용할 수 있다.
⊙ /etc/cron.allow 파일이 없고 /etc/cron.deny 파일이 있으면 이 파일에 사용자 계정이 없어야 crontab 명령을 사용할 수 있다.
⊙ /etc/cron.allow 파일과 /etc/cron.deny 파일이 모두 없으면 시스템 설정에 따라 시스템 관리자만 crontab 명령을 사용할 수도 있고, 모든 사용자가 crontab 명령을 사용할 수도 있다.
반복 작업 쉽게 만들기
우분투는 기존의 개인별 crontab 파일을 설정하는 방법 외에 시간별, 매일, 매주, 매월 반복할 작업을 쉽게 만드는 방법을 제공한다. 반복적으로 작업할 내용을 셸 스크립트로 만들어 해당 파일을 /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly 디렉터리에 가져다 놓기만 하면 된다.
'Linux' 카테고리의 다른 글
리눅스의 파일 아카이브와 압축 (0) | 2015.05.08 |
---|---|
우분투 패키지 설치 (0) | 2015.05.08 |
포그라운드, 백그라운드 프로세스와 작업제어 (0) | 2015.05.07 |
프로세스를 종료할 때 pkill이 kill보다 편리한 경우 (0) | 2015.05.07 |
프로세스 관리명령 2 (0) | 2015.05.07 |
- Total
- Today
- Yesterday
- socket
- MFC
- 라즈베리파이
- 정렬
- 파일
- Sort
- C/C++
- 프로세스
- 스레드
- 소켓 프로그래밍
- 클래스
- 데이터베이스
- C
- 파이썬
- 액터
- 리눅스
- 쓰레드
- C++
- 티라노 시그널
- 터미널
- UML
- 소켓
- 티그널
- 자료구조
- 악보
- 파이썬예제
- 안드로이드
- 유즈케이스
- 클라이언트
- 디렉터리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |