본문 바로가기
IT/Linux

리눅스에서 프로세스 스케줄링

by 성준하이 2022. 5. 30.
반응형

먼저 프로세스에 대한 개념은 아래 참고 포스팅을 확인해보고 본 포스팅을 읽어보는것을 추천한다.

 

리눅스에서 말하는 스케줄링이란 특정한 시간에 특정한 작업을 수행하게 하는것으로 리눅스에서는 at 과 cron을 사용한다.

둘다 모두 데몬으로 실행 중에 있어야하고 대부분의 리눅스에서는 atd 및 crond라 하여 기본적으로 동작하고 있다.

at은 주로 한번만 실행해야할때 사용을 하고 cron은 주기적으로 프로세스를 실행할때 사용한다.

 

at

작업은 큐에 저장이 되고 저장된 작업들은 /var/spool/at 디렉터리에 파일로 저장이 된다.

명령은 기본적으로 표준 입력 장치를 통해 받으며 원하는 명령을 순차적으로 입력한 후에 ctrl+d를 누르면 해당 작업이 예약이 된다.

 

cron

시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab 에 등록해서 주기적으로 수행을 하고 사용자는 crontab이라는 명령을 수행해서 등록할수 있다.

총 7개의 필드로 구성이 되어있는데

min    hour    day_of_month    month    day_of_week    user-name    command

crontab을 등록할때 해당 위치에 알맞는 값과 command를 입력해주면 해당 시간에 해당 명령이 동작을 한다.

  • min > 0-59
  • hour > 0-23
  • day_of_month > 1-31
  • month > 1-12
  • day_of_week > 0-7 (0,7 일요일, 1월 ,2화, 3수, 4목, 5금, 6토)

--------------------------------------------------------------------------------

예)

# more /var/spool/cron/crontabs/root

# minute   hour   day   month   week

# 0~59     0~23   1~31  1~12    0~6  (0=sunday, 1=monday)

#

15,45 3 * * * find / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune

5 9 * * 6 /usr/lib/newsyslog >/dev/null 2>&1

15 0,8 16 * * find /var/preserve/ -mtime +7 -a -exec rm -f {} \;

--------------------------------------------------------------------------------

  crontab 화일의 맨 앞의 5번째 칼럼까지에는 각 명령이 수행되어질 일시와 요일이다.

  지정한 것들은 아래와 같은 의미를 갖는다.

        분 시간 날짜 달 요일 : 구분은 Space

        15,45 3 * * *  : 매일 3시 15분관 45분에 수행

        5 9 * * 6      : 매주 금요일 9시 5분에 수행

        15 1,18 16 * * : 매달 16일 1시15분과 오후 6시 15분에 수행


참고 포스팅

https://thenicesj.tistory.com/157

 

프로그램 / 프로세스 / 스레드

컴퓨터를 사용하다보면 프로그램이라는 단어를 많이 사용해보았을 것이다. 프로그램 윈도우 사용자 기준으로 설명을 한다면 .exe파일들 , 즉 실행할수 있는 모든 것을 프로그램이라고 한다. 프

thenicesj.tistory.com

 

반응형

댓글