728x90
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_*_*_*
SHELL 설정
처음 크론탭을 사용할 때, 시간이고 파일명이고 모두 잘 적어주었는데 정상적으로 작동되지 않았다.
서치 끝에 얻은 결과는 크론탭에 SHELL의 경로를 적어주라는 것이었다.
정상적으로 작동이 안될 시 맨 위에 SHELL의 경로를 명시적으로 적어주도록 하자.
SHELL=/bin/bash
'그 외 공부 > 기타' 카테고리의 다른 글
Static Method를 Mocking 하게 해줘야할까? (0) | 2024.10.24 |
---|---|
[Gradle] settings.gradle에 멀티 프로젝트 설정하기 (0) | 2023.06.09 |
메일 서버의 동작 구조와 프로토콜 (SMTP, POP3, IMAP) (0) | 2022.08.05 |