Crontab?
크론탭은 특정 파일이 특정 시간에 정기적으로 실행될 수 있도록 도와주는 유틸이다.
매일 특정 시간에 실행시켜야 하는 파일이 있다면 크론탭을 통해 서버에 올려놓고 사용하는 식이 대부분이다.
명령어
# 크론탭 작업 목록
crontab -l
# 크론탭 수정
crontab -e
# 크론탭 작성 내용 삭제
crontab -r
작성
크론탭을 사용할 때는 파일이름과 해당 파일이 동작할 시간을 함께 작성해준다.
아마 초기 작성시에는 사용할 편집기를 고르게 하는데 nano든 vim이든 본인이 편한 걸로 사용해주자.
* * * * * /home/mydir/someFileToExecute.sh
* 은 첫 번째부터
- 분 (0~59)
- 시 (0~23)
- 일 (1-31)
- 월 (1~12)
- 요일 (0~7) : 0, 7 - 일요일, 1 - 월요일, 2 - 화요일, ...
순서이다.
값에 * 을 써놓으면 매(분, 시, 일, 월, 요일) 진행해주겠다는 의미이다.
즉, 매일 13시 30분에 해당 파일을 실행하고 싶다면 다음과 같이 작성하면 된다.
# 모든 요일, 모든 월, 모든 일, 13시 30분에 실행
30 13 * * * /home/mydir/someFileToExecute.sh
* 시간 설정 시 본인 컴퓨터 혹은 서버의 시간세팅이 무엇을 기준으로 설정되어 있는지 확인하자.
나는 UTC 시간으로 세팅되어 있어서, 실사용 시 한국 시간에서 9시간을 뺀 시간로 설정하였다.
시간 적는게 조금 헷갈린다면 밑의 사이트에서 직접 시간을 입력하고 확인해보자.
https://crontab.guru/#1_1_*_*_*
Crontab.guru - The cron schedule expression editor
loading... Cron job failures can be disastrous! We created Cronitor because cron itself can't alert you if your jobs fail or never start. Cronitor is easy to integrate and provides you with instant alerts when things go wrong. Learn more about cron job mon
crontab.guru
SHELL 설정
처음 크론탭을 사용할 때, 시간이고 파일명이고 모두 잘 적어주었는데 정상적으로 작동되지 않았다.
서치 끝에 얻은 결과는 크론탭에 SHELL의 경로를 적어주라는 것이었다.
정상적으로 작동이 안될 시 맨 위에 SHELL의 경로를 명시적으로 적어주도록 하자.
SHELL=/bin/bash
'그 외 공부 > 기타' 카테고리의 다른 글
Replication Lag 해결전략 정리하기! (2) | 2025.01.17 |
---|---|
Static Method를 Mocking 하게 해줘야할까? (0) | 2024.10.24 |
[Gradle] settings.gradle에 멀티 프로젝트 설정하기 (0) | 2023.06.09 |
메일 서버의 동작 구조와 프로토콜 (SMTP, POP3, IMAP) (0) | 2022.08.05 |