Crontab 이해하기

리눅스의 Crontab이 뭔지, 어떻게 이용하는지 알려드립니다.

소개: Crontab은 리눅스와 유닉스 기반 시스템에서 작업 예약과 자동화를 위해 사용되는 강력한 도구입니다. Crontab을 사용하면 사용자가 정의한 명령어나 스크립트를 지정된 시간에 주기적으로 실행할 수 있습니다. 이 글에서는 Crontab의 개념과 사용법에 대해 자세히 알아보겠습니다.

  1. Crontab이란? Crontab은 "Cron Table"의 줄임말로, 시간 기반 작업 예약을 관리하는 파일입니다. 각 사용자는 자신의 Crontab 파일을 가지고 있으며, 이 파일에 작업 예약에 대한 정보를 입력하여 시스템이 해당 작업을 실행하도록 설정할 수 있습니다.
  2. Crontab 파일 구조 Crontab 파일은 다음과 같은 구조를 가지고 있습니다: 분 시 일 월 요일 명령어
  • 분: 0부터 59까지의 값을 가지며, 실행할 분을 지정합니다.
  • 시: 0부터 23까지의 값을 가지며, 실행할 시간을 지정합니다.
  • 일: 1부터 31까지의 값을 가지며, 실행할 일을 지정합니다.
  • 월: 1부터 12까지의 값을 가지며, 실행할 월을 지정합니다.
  • 요일: 0부터 7까지의 값을 가지며, 실행할 요일을 지정합니다. (0과 7은 일요일을 의미합니다.)
  • 명령어: 실행할 명령어나 스크립트를 지정합니다.
  1. Crontab 사용법 Crontab을 사용하기 위해서는 crontab 명령어를 사용해야 합니다. 아래는 Crontab을 사용하는 일련의 단계입니다:

단계 1: Crontab 파일 편집

$ crontab -e

위 명령어를 실행하면 기본 텍스트 편집기가 열리고, 현재 사용자의 Crontab 파일이 편집 가능한 상태로 나타납니다.

단계 2: 작업 예약 추가 편집기에서 원하는 작업 예약을 추가합니다. 예를 들어, 매일 오전 3시에 /home/user/backup.sh 스크립트를 실행하려면 다음과 같이 작성할 수 있습니다:

0 3 * * * /home/user/backup.sh

위 예제에서는 분을 0, 시를 3으로 설정하여, 매일 오전 3시에 스크립트를 실행하도록 예약했습니다.

단계 3: Crontab 파일 저장 및 종료 작업 예약을 추가한 후, 파일을 저장하고 편집기를 종료합니다.

  1. Crontab 예약 패턴 Crontab에서 사용하는 예약 패턴에 대해 알아보겠습니다:
  • *: 모든 값에 대응합니다. 예를 들어, * * * *는 매 분마다 작업을 실행합니다.
  • /n: 주기적으로 실행할 값을 지정합니다. 예를 들어, /5 * * * *는 5분마다 작업을 실행합니다.
  • ,: 여러 값 또는 범위를 지정합니다. 예를 들어, 1,15 * * * *는 1분과 15분에 작업을 실행합니다.
  • -: 범위를 지정합니다. 예를 들어, 1-5 * * * *는 1분부터 5분까지 작업을 실행합니다.
  1. Crontab 예시 다음은 Crontab을 사용한 예시입니다:
  • 매일 정오에 /home/user/backup.sh 스크립트 실행: 0 12 * * * /home/user/backup.sh
javascriptCopy code
0 12 * * * /home/user/backup.sh
  • 매주 월요일 1시에 /home/user/cleanup.sh 스크립트 실행: 0 1 * * 1 /home/user/cleanup.sh
arduinoCopy code
0 1 * * 1 /home/user/cleanup.sh
  • 매시간 30분마다 /home/user/check_status.sh 스크립트 실행: 30 * * * * /home/user/check_status.sh
javascriptCopy code
30 * * * * /home/user/check_status.sh
  • 특정 시간 범위 내에 /home/user/monitor.sh 스크립트 실행: 0 9-17 * * * /home/user/monitor.sh @

결론

Crontab은 리눅스에서 작업 예약과 자동화를 위한 강력한 도구로, 사용자가 정의한 명령어나 스크립트를 원하는 시간에 주기적으로 실행할 수 있게 해줍니다. Crontab을 적절히 활용하면 반복적이고 지루한 작업을 자동화하고, 시스템 유지 관리 작업을 효율적으로 처리할 수 있습니다.