본문 바로가기

Linux Unix

[ Linux ] crontab - 특정 시간에 스크립트를 자동으로 실행하기

반응형

crontab은 리눅스나 유닉스 시스템에서 주기적으로 명령어를 실행할 수 있도록 하는 도구입니다. 이를 통해 특정 시간, 일, 주, 월, 년 단위로 명령어나 스크립트를 자동으로 실행할 수 있습니다. 사용법은 다음과 같습니다.

1. crontab 파일 열기

터미널에서 아래 명령어를 입력하여 현재 사용자에 대한 crontab 편집을 시작할 수 있습니다.

crontab -e

이 명령어를 실행하면 편집기가 열리면서 crontab 파일을 수정할 수 있게 됩니다.

2. crontab 형식

crontab 파일에 추가하는 각 줄은 일정 시간마다 실행할 명령어로 구성됩니다. 형식은 다음과 같습니다.

분  시  일  월  요일  명령어
  • : 0부터 59까지의 숫자
  • : 0부터 23까지의 숫자 (24시간제)
  • : 1부터 31까지의 숫자 (해당 월의 날짜)
  • : 1부터 12까지의 숫자 (또는 Jan, Feb 등으로 월을 지정)
  • 요일: 0부터 7까지의 숫자 (0과 7은 일요일, 또는 Sun, Mon 등으로 요일 지정)
  • 명령어: 실행할 명령어나 스크립트 경로

3. 예시

다음은 몇 가지 예시입니다.

  • 매 시간마다: 매 시간마다 example.sh 스크립트를 실행
  • 0 * * * * /path/to/example.sh
  • 매일 자정에: 매일 자정(00:00)에 backup.sh 스크립트를 실행
  • 0 0 * * * /path/to/backup.sh
  • 매주 월요일 오전 8시 30분에: 매주 월요일 오전 8시 30분에 weekly_report.sh 스크립트를 실행
  • 30 8 * * 1 /path/to/weekly_report.sh
  • 매일 10분마다: 매일 10분마다 monitor.sh 스크립트를 실행
  • */10 * * * * /path/to/monitor.sh

4. crontab 확인 및 삭제

  • 현재 사용자 crontab 확인:
  • crontab -l
  • 현재 사용자 crontab 삭제:
  • crontab -r

crontab에서 2개월에 한 번 실행되도록 설정할 수는 있지만, crontab은 특정 월을 주기적으로 지정하는 기능이 없어서 이를 직접 표현하기는 어렵습니다. 하지만 매 짝수 월에 실행하는 방식으로 해결할 수 있습니다. 아래 예제를 통해 다양한 시간 설정과 2개월에 한 번 동작하는 예제를 설명하겠습니다.

5. 다양한 시간 설정 예제

  • 매일 오전 6시에 스크립트 실행
  • 0 6 * * * /path/to/script.sh
  • 매주 월요일 오전 8시에 스크립트 실행
  • 0 8 * * 1 /path/to/script.sh
  • 매일 30분마다 스크립트 실행
  • */30 * * * * /path/to/script.sh
  • 매달 1일 자정에 스크립트 실행
  • 0 0 1 * * /path/to/script.sh

6. 2개월에 한 번 동작하는 설정 예제

2개월에 한 번 동작하게 하려면 crontab에서 월을 짝수 월로 설정하여 해결할 수 있습니다. 예를 들어, 2월, 4월, 6월 등 짝수 월에 특정 일시에 스크립트를 실행하도록 설정할 수 있습니다.

  • 짝수 월의 1일 자정에 스크립트 실행 (2, 4, 6, 8, 10, 12월에 실행)

    0 0 1 */2 * /path/to/script.sh

이 설정은 매 2개월마다 한 번씩, 즉 짝수 월의 1일 자정에 해당 스크립트를 실행하게 됩니다.

이와 같이 crontab을 사용하여 원하는 시간에 자동으로 명령어를 실행할 수 있습니다.

반응형