Cron

Cron은 Unix기반 시스템에서 시간 기반의 작업 스케줄러를 말한다. 사용자가 지정한 시간에 자동으로 스크립트 실행, 명령어 실행 등의 작업을 반복적으로 수행하도록 예약할 수 있게 해준다. 주로 시스템 유지보수 작업, 데이터 백업, 주기적인 보고서 생성 등 반복적인 작업을 자동화하는데 사용한다.

Cron 주요 구성요소

  • Crontab (Cron Table) : Cron 작업의 스케줄과 실행할 명령어를 정의하는 파일이다. 각 사용자는 자신만의 crontab파일을 가질 수 있고, 시스템 전체적으로 사용되는 crontab도 있다. Corntab파일의 각 라인은 하나의 작업을 정의한다.

예시로 매일 자정에 backup.sh 스크립트를 실행하는 Cron이 있다고 가정하자.

0 0 * * * ./backup.sh


또는 매일 월요일 오전 9시에 report.sh 스크립트를 실행한다고 가정하면 아래와 같다.

0 9 * * 1 ./report.sh


CRON 표현식을 조금 더 찾아보자

  • 5분 마다 실행하기

    * */5 * * * * ./script.sh
    
  • 매일 아침 9시 실행하기

    0 9 * * * * ./script.sh
    
  • 매일 15분과 45분에 실행하기

    15,45 * * * * ./script.sh
    


이외 Crontab 사용할 수 있는 명령어는 아래와 같다.

  • crontab -e : crontab 파일을 편집
  • crontab -l : 현재 사용자의 crontab에 정의된 작업 목록
  • crontab -r : 현재 사용자의 crontab에서 모든 작업을 삭제