작업 예약 스케줄러 파일인 cron

  • 특정한 시간에 또는 특정 시간마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어
  • cron은 특정한 시간에 특정한 작업을 수행하게 해주는 스케줄링 역할

1. 시스템 크론(system cron)

  • cron 시스템에는 시스템에서 기본적으로 사용하는 cron 설정
  • 시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab에 등록해서 주기적으로 수행 가능

2. 사용자 크론(user cron)

  • root나 일반 사용자가 자신의 cron 설정을 직접하여 사용
  • 사용자는 crontab이라는 명령을 수행해서 등록


cron과 관련된 여러 파일들

1. cron

  • /usr/sbin/cron → 크론 데몬 파일

2. crontab

  • cron 작업을 설정하는 파일 → crontab 파일
  • cron 프로세스는 /etc/crontab 파일에 설정된 값을 읽어서 수행
  • crontab 파일은 OS에 따라 저장되는 위치가 다를 수 있음
  • crontab의 파일 내용
    1. m h dom mon dow user command
    2. 분 시 일 월 요일 사용자 실행명령 → crontab의 형식
    3. *의 의미는 every
    4. 25 6 * * * root test -x /usr/sbin/anacron ~
    5. 6시 26분마다 root 사용자가 test -x /usr/sbin/anacron ~ 명령 실행

3. /usr/sbin/anacron

  • cron과 비슷한 동작을 할 수 있게하는 프로그램
  • 서버가 일정 시간 중지되었을 때에도 작업이 실행되는 것을 보장하기 위해 사용하는 도구

4. /etc/cron.daily, /etc/cron.hourly, /etc/cron.weekly, /etc/cron.monthly

  • 시스템 크론 설정 디렉토리
  • cron은 주기적으로 실행할 내용을 시스템 크론 설정 디렉토리에 넣어 놓고 작동

5. /var/log/cron

  • 크론 실행 내용이 기록되는 로그 파일

6. /etc/cron.allow, /etc/cron.deny

  • 크론 접근을 허용할 ID, 크론 접근을 허용하지 않을 ID 등을 설정


cron 동작 방식, cron 실행 흐름

  • cron 동작 방식을 보면 cron 데몬(crond)가 crontab을 참조
  • cron 데몬은 어떤 task를 언제 어떻게 수행할 지를 crontab에서 찾아서 실행
  • cron 데몬은 시스템 스케줄러 정보 뿐만 아니라 각각 사용자가 설정한 작업 예약 정보도 crontab에서 확인
  • cron 파일이 데몬이기 때문에 부팅시 백그라운드로 실행
    $ ps -ef | grep cron

crontab 설정 형식(crontab 파일의 7 필드)

  • m h dom mon dow user command 설명

crontab 설정 값에 사용할 기호

1. * (별표)

  • 각 필드 자리에 * 기호가 오면 해당 필드의 모든 값을 의미
  • 두 번째 필드에 *가 오면 매 시간 마다
  • 세 번째 필드에 *가 오면 매일
  • 네 번째 필드에 *가 오면 매월

2. - (하이픈)

  • 그 사이의 모든값을 의미
  • 세 번째 필드에 '1-5' 값이 오면 1일, 2일, 3일, 4일, 5일 의미

3. , (쉼표)

  • 지정한 모든 값을 의미
  • 불규칙적인 값 지정할 때 주로 사용
  • 두 번째 필드에서 "1,3,4"는 1시, 3시, 4시를 의미

4. / (슬래시)

  • 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용

+ Recent posts