Linux
[Linux] 14. 작업 스케줄링
훈티
2022. 7. 27. 18:56
(Week 3 - Day 3) - (2/2)
작업 스케줄링
- 만약 매일 0시에 진행할 업무가 있다면 시스템 관리자는 매일 0시에 직접 작업을 진행해야 한다.
- 하지만 매우 비효율적이고 관리자에게 큰 부담이 된다.
- 이를 방지하기 위해 예약 작업을 사용해서 시스템 관리를 좀더 효율적으로 할 수 있게 한다.
단일성 작업 예약
- 한번 실행하고 종료되는 작업
- at 명령어 사용
at 명령 사용
$ at [OPTION] TIMESPEC
TIMESPEC
at 13:30 | 0~23시 범위 |
at 10:00 AM | AM/PM 구분 |
at Jul 12 2022 16:00 | 특정 날짜 + 시간 |
at 071222 at 07-12-17 at 07.12.17 |
월-일-년 순서 |
at now + 5min | 현재 시점 기준 + 시간 |
at 작업 예약
$ at TIMESPEC
at > 예약할 작업
at 예약 작업 목록 확인
$ at -l
1 Web Jul 27 14:44:00 2022 a root
(at Job ID)
주기적 작업 예약
- 특정 주기마다 실행되는 작업
- cron 명령 사용
- cron 명령을 사용해서 작업을 예약하면 crond 데몬에 의해서 작업이 실행됨.
- 사용자 별로 작업을 예약할 수 있는 User Cron과 시스템의 작업을 예약하기 위한 System cron이 있다.
- 명령어는 crontab
crontab 명령 사용
$ crontab [OPTION] FILE
OPTION
-e | 작업을 예약할 수 있는 편집기 실행 |
-l | 예약된 작업의 리스트를 보여준다. |
-r | 예약된 작업 전체 삭제 |
-u | 사용자를 지정하여 사용자에 대한 crontab 관리 root만 가능 -r와 -e와 함께 사용해서 삭제 및 관리 가능 |
작성 문법
[user cron - crontab 작성 문법]
분 시 일 월 요일 명령어
(0~59) (0~23) (1~31) (1~12) (0~6)
메타 문자
- crontab 등록 시 사용 메타 문자
* | Always (Don't Care) |
- | 연속적인 범위를 지정 |
, | 불연속적인 범위를 지정 |
/ | 조건에 대한 주기(~마다) |
예제
- 매월 3일 오전 9시 30분 작업 예약
더보기
30 9 3 * * COMMAND
- 매일 오전 10시에 5분 간격으로 작업 예약
더보기
*/5 10 * * * COMMAND
- 매일 오전 6시, 오후 1시에 작업 예약
더보기
0 6, 13 * * * COMMAND
System cron
- root 사용자만 사용할 수 있다.
- vi 에디터로 직접 파일을 열어 수정해야 한다.
- system cron에서는 필드가 하나 추가 된다. 어떤 사용자의 권한으로 작업을
- 실행할 것인지 지정할 수 있다.
crontab 설정 경로
/etc/crontab : 이곳에서 직접적으로 작업 지정 가능
/etc/cron.d : 해당 디렉토리에 파일을 만들어 작성을 하면 등록된다.