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 : 해당 디렉토리에 파일을 만들어 작성을 하면 등록된다.