본문 바로가기

개발/기타

[Linux] crontab 기본 개념 및 사용방법

크론탭은 사용자가 Linux 시스템에서 작업을 예약하고 자동화할 수 있는 도구입니다.

크론탭을 사용하면 매시간, 일, 주, 월 등 특정 간격으로 명령이나 스크립트를 실행하도록 예약할 수 있습니다. 이를 통해 백업, 로그 로테이션 또는 주기적인 스크립트 실행과 같은 반복적인 작업을 자동화하는 데 도움이 될 수 있습니다.

크론탭에 대한 이해와 사용방법에 대해 알아보도록 하겠습니다.

 

 

○ 크론탭 형식 이해하기

크론탭 사용 방법을 자세히 알아보기 전에 크론탭 형식을 먼저 알아볼 필요가 있습니다.

크론탭 형식은 작업을 실행할 시기를 지정하는 6개의 필드로 구성되어 있습니다

필드 구성은 아래와 같습니다.

*     *     *     *     *     command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- day of the week (0 - 6) (Sunday = 0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of the month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

 

처음 다섯 개의 필드는 명령이 실행되어야 하는 시기를 지정하고 마지막 필드는 실행할 명령을 지정합니다. 

필드는 공백 또는 탭으로 구분되며 "*" 문자는 와일드카드 값으로, "가능한 모든 값"을 의미합니다.

 


○크론탭 파일 만들기

crontab 파일을 만들려면 crontab 명령을 사용해야 합니다. 

crontab 명령의 구문은 다음과 같습니다

(아래처럼 크론탭 파일을 만들지 않고 바로 crontab -e 명령어로 텍스트 편집기를 열고 작업 항목을 작성한 뒤 저장하면 파일을 생성할 수 있습니다.)

crontab [-u user] file

여기서 -u 옵션은 수정하려는 크론탭의 사용자를 지정하고, file은 크론탭 항목이 포함된 파일의 이름입니다.

-u 옵션을 지정하지 않으면 크론탭은 사용자가 자신의 크론탭을 수정하려는 것으로 간주합니다.

새 crontab 파일을 만들려면 vi, nano, emacs 등 원하는 텍스트 편집기를 사용할 수 있습니다. 

파일을 만든 후에는 이 파일에 크론탭 항목을 추가할 수 있습니다. 

 

예를 들어 매일 자정에 backup.sh라는 스크립트를 실행한다고 가정해 보겠습니다.

크론탭 파일에 다음 줄을 추가하면 됩니다

0 0 * * * /path/to/backup.sh

여기서 처음 두 필드(0 0)는 스크립트가 자정에 실행되도록 지정합니다. 

0 0 다음 필드(* * *)는 스크립트가 매월 매일 실행되도록 지정합니다.

마지막으로 마지막 필드는 실행할 명령(/path/to/backup.sh)을 지정합니다.

 


○ crontab 파일 수정하기

기존 crontab 파일을 수정하려면 crontab 명령과 함께 -e 옵션을 사용할 수 있습니다. 

예를 들어, 자신의 crontab 파일을 편집하려면 다음 명령을 실행합니다

crontab -e

그러면 기본 텍스트 편집기에서 크론탭 파일이 열립니다. 그런 다음 필요한 사항을 변경하고 파일을 저장할 수 있습니다.

 


○ 크론탭 항목 보기

crontab 파일에 있는 항목을 보려면 crontab 명령과 함께 -l 옵션을 사용하면 됩니다.

예를 들어 자신의 crontab 항목을 보려면 다음 명령을 실행합니다

crontab -l

 

 

결론

크론탭은 간단한 스크립트나 로그 로테이션, 또는 백업등의 작업을 주기적으로 실행해야 할 때 유용할게 사용될 수 있습니다.