OS/Linux

[SCHEDULER] CRONTAB 설정 관련

2023. 3. 14. 10:30

1. crontab 이란

배치Batch처럼 특정 시간에 정기적으로 ShellScript나 프로그램을 실행 시키기 위한 Crontab 시간 설정을 정리

 

2. crontab description

※ 기본적으로 아래와 같이 공백(space)으로 5개 값을 구분하여 설정한다.
   1 11 3 * * <SHELL_PATH>
   분 시 일 월 요일 쉘스크립트경로

※ 1번째
   분(minute)을 의미, 몇 분에 실행 할 것인지 설정한다.
   ex) 1 11 3 * * <SHELL_PATH>
   XX일 XX시 '01분'에 실행
   *을 설정할 경우, 매분(1분 마다) 실행을 의미

※ 2번째
   시간(hour)을 의미, 몇 시에 실행 할 것인지 설정한다.
   ex) 1 11 3 * * <SHELL_PATH>
   XX일 '11시' 01분에 실행
   *을 설정할 경우, 매시간(1시간 마다) 실행을 의미

※ 3번째
   일(day of month)을 의미, 몇 일에 실행 할 것인지 설정한다.
   ex) 1 11 3 * * <SHELL_PATH>
   '3일' 11시 01분에 실행
   *을 설정할 경우, 매일 실행을 의미

※ 4번째
   월(month)을 의미, 몇 월에 실행 할 것인지 설정한다.
   ex) 1 11 3 5 * <SHELL_PATH>
   '5월' 3일 11시 01분에 실행
   *을 설정할 경우, 매월 실행을 의미

※ 5번째
   요일(day of week)을 의미, 무슨 요일에 실행 할 것인지 설정한다.
   0 ~ 6 사이의 값을 설정 (0: 일요일, 6: 토요일)
   ex) 1 11 3 * 3 <SHELL_PATH>
   매달 3일 11시 01분 수요일에 실행
   *을 설정할 경우, 매일 실행을 의미

 

3. crontab 예제

* * * * * 매일 1분마다 실행
5 * * * * 매일 매시간 05분에 실행
(1시간 간격으로 실행)
*/5 * * * * 매일 5분마다 실행
*/10 * * * * 매일 10분마다 실행
0,10,20,30,40,50 * * * * 매일 10분마다 실행
0 18 * * * 매일 18시 00분에 실행
45 22 * * * 매일 22시 45분에 실행
28 03 * * * 매일 03시 28분에 실행
* 1 * * * 매일 01시 00분 ~ 01시 59분 사이에 1분 간격으로 실행
0 */1 * * * 매일 1시간 간격으로 실행
(매시간 00분)
0 */12 * * * 매일 12시간마다 실행
0 6,12 * * * 매일 06시, 12시에 실행
10 2-5 * * * 매일 02시 ~ 05시 사이 매시간 10분에 실행
(02시 10분, 03시 10분, 04시 10분, 05시 10분)
5 8-20/3 * * * 매일 08시 ~ 20시 사이 3시간 간격으로 05분에 실행
(08시 05분, 11시 05분, 14시 05분, 17시 05분, 20시 05분)
42 4 10 * * 매달 10일 04시 42분에 실행
30 5 1,15 * * 매달 1일과 15일 05시 30분에 실행
0-10 17 1 * * 매달 1일 17시 00분 ~ 17시 10분까지 1분 단위로 실행
0 17 * * 1 매주 월요일 17시 00분에 실행
0,10 17 * * 0,2,3 매주 일, 화, 수요일 17시 00분과 17시 10분에 실행
0 0 1,15 * 1 매달 1일과 15일 그리고 월요일 24시 00분에 실행
0 6,12 * * 0,3 수, 일요일마다 06시, 12시에 실행
0 21 * * 1-6 월 ~ 토 21시 00분에 실행

 

(cf) aws cron 표현식 

      - url https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/events/ScheduledEvents.html#CronExpressions

 

규칙에 대한 예약 표현식 - Amazon CloudWatch Events

'#' 문자를 사용하는 경우 요일(day-of-week) 필드에 하나의 표현식만 정의할 수 있습니다. 예를 들어 "3#1,6#3"은(는) 두 개의 표현식으로 해석되기 때문에 유효하지 않습니다.

docs.aws.amazon.com

 

4. 등록된 crontab 목록 확인

$ crontab -l

 

5. crontab 등록 및 수정

(반드시 sh 파일은 +x 옵션이 있어야 실행 가능)

$ crontab -e
분(0-59) 시(0-23) 일(0-31) 월(1-12) 요일(0-7) 명령어 
(요일에서 0, 7 : 일요일, 1:월, 2:화 ...)
주석은 #으로 하면 됩니다.

ex) 
30 4,12 * * * /user/bin/run.sh > /user/bin/run-4:00-12:30.log 2>&1
(새벽 4시, 낮 12시 30분에 *일, *월, *요일에 /user/bin/run.sh를 실행시켜 run-4:00-12:30로그 저장해주세요.)

*/10 * * * * /user/bin/run.sh > /user/bin/run-10min.log 2 >&1
(10분마다 /user/bin/run.sh를 실행시켜 run-10min 로그 저장주세요.)


[특정 유저를 지정하여 실행할 경우]
* * * * * su - user1 -c /home/user1/test.sh 2>&1
(1분마다 user1이 test.sh 실행)
 등록한 crontab 항목을 실행 하지 않기 위해서는 앞에 #을 붙여 주석 처리 해주면 됩니다. *은 모든 경우를 뜻합니다. /dev/null 2&1은 처리/에러 결과를 출력하지 않고 모두 버린다는 의미고, 만약, 처리/에러 결과를 보고 싶으면 /user/bin/run.sh > result.txt 하시면 됩니다.
 
crontab을 등록을 했다면 내가 등록한 쉘 명령어가 일정 주기에 따라 제대로 실행되는지 확인이 필요합니다. 확인하기 위해서는 리눅스에서 로그가 있는 경로의 cron을 보시면 됩니다. 그 외에 editor를 수정하거나 각종 crontab에 대한 설정을 변경하기 위해서는 아래와 같이 입력하시면 됩니다.

 

6. crontab 로그 확인

$ cat /var/log/cron 

 

7. crontab 설정 확인

$ cat /var/spool/cron/root

'OS > Linux' 카테고리의 다른 글

[Shell Script] archive log 삭제 스크립트  (0) 2024.11.15
[SHELL] 쉘스크립트_sql문 실행  (0) 2023.03.09
[SHELL] 쉘 스크립트_프로세스 상태 확인  (0) 2023.03.09
[OS] 커널 부팅 순서 변경하기  (0) 2023.02.13
[ETC] Samba 설치 및 Linux와 Window간 파일 공유하기  (0) 2023.01.30
'OS/Linux' 카테고리의 다른 글
  • [Shell Script] archive log 삭제 스크립트
  • [SHELL] 쉘스크립트_sql문 실행
  • [SHELL] 쉘 스크립트_프로세스 상태 확인
  • [OS] 커널 부팅 순서 변경하기
밍구멍구
밍구멍구
밍구멍구
저장소
밍구멍구
  • 분류 전체보기 (62)
    • DB (52)
      • Oracle (49)
      • MySQL (0)
      • Maria (0)
      • PostgreSQL (0)
      • SQLServer (0)
      • Tibero (3)
    • OS (9)
      • Linux (7)
      • Unix (0)
      • Window (2)
    • CLOUD (0)
      • AWS (0)
      • Azure (0)
      • GCP (0)
    • ETC (1)
      • SQL (0)
      • PLSQL (1)

공지사항

  • 공지사항

최근 글

hELLO · Designed By 정상우.
밍구멍구
[SCHEDULER] CRONTAB 설정 관련
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.