티스토리 뷰
# 기본개념
소프트웨어 유틸리티 cron은 유닉스계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용한다.
Cron은 셸 명령어들이 주어진 일정에 주기적으로 실행하도록 규정해놓은 crontab파일에 의해 구동된다. crontab파일들은 잡 목록 및 cron 데몬에 대한 다른 명령들이 보관된 위치에 저장되어 있다.
# 형식
┌────────분 (0 - 59)
│ ┌──────── 시 (0 - 23)
│ │ ┌───────── 일 (1 - 31)
│ │ │ ┌────────── 월 (1 - 12)
│ │ │ │ ┌─────────── 요일 (0 - 7) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일, 7:일요일)
│ │ │ │ │
│ │ │ │ │
* * * * * 수행할 명령어
# 명령어
$ crontab -e
편집할 수 있는 곳이 로딩되는데, 여기서 크론탭을 설정할 수 있다. 각종 크론탭 명령어를 입력한 후 콜론(:) wq 를 입력해 크론탭을 갱신시킨다.
$ crontab -l
현재 크론탭에 어떤 내용이 들어있는지 확인한다.
$ crontab -r
위 명령어로 크론탭을 지울 수 있다.
# 예시
다음은 cron 사용자의 기본 셸이 본 셸 호환이라는 가정 하에 매일 자정 이후 1분 째에 아파치 오류 로그를 삭제한다.
1 0 * * * printf > /var/log/apache/error_log
아래의 예는 매일 20시 (오후 8시)에 export_dump.sh라는 셸 프로그램을 실행한다.
0 20 * * * /home/oracle/scripts/export_dump.sh
*Linux기반이 아닌 Java/Spring에서도 cron을 사용할 수 있는데, schedule task를 생성하고 아래의 어노테이션(annotation)을 이용하여 수행할 수 있다.
@Scheduled(cron = “* * * * * ?”)
# 참고
위키백과, 우리 모두의 백과사전 (https://ko.wikipedia.org/wiki/Cron)
'Programming > Other' 카테고리의 다른 글
[IT] Naming Convention (0) | 2019.08.08 |
---|---|
[MAC] Microsoft Remote Desktop 10 (1) | 2019.08.06 |
[IT] Request SMS Vertification on the Server (0) | 2019.01.17 |
[IT] REST API (0) | 2018.12.09 |
[MAC] DockBar Delay (0) | 2018.11.20 |
댓글