티스토리 뷰

Programming/Other

[IT] Linux Crontab

sohyun_ 2019. 1. 23. 08:30

# 기본개념
소프트웨어 유틸리티  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
댓글
최근에 올라온 글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday