[Linux-Ubuntu] 일정 주기로 CMD 실행하기 (Crontab)

실험환경: Ubuntu 18.04


Ubuntu에서 특정 CMD(명령어)를 반복적으로 실행하기 위해서 Crontab이란 리눅스 전용 작업 스케줄러를 사용하면 된다. 사용 방법은 모두 출처 1에서 참조하였다. 상세한 내용은 출처 1을 참조하면 된다.


Crontab에 등록된 CMD 확인

$crontab -l

CMD를 사용하여 현재 Crontab에 등록된 모든 CMD를 확인 할 수 있다. 아래 그림 1은 현재 등록된 CMD를 수행한 화면이다. 현재 2가지 CMD가 설정되어 있다.

그림 1: 등록된 CMD 확인

Crontab에 CMD 등록하기

$crontab -e

위 CMD를 실행하면 Crontab에 CMD를 등록할 수 있다. 처음 위 CMD를 실행하면 어떤 Editor를 사용할 것인지 물어본다. 나의 경우 VIM을 사용해서 CMD를 등록하였다. 원하는 Editor를 사용해서 실행할 CMD를 등록 후 저장하면 모든 설정이 끝난다. CMD를 등록하는 방법은 아래와 같이 분, 시, 일, 월, 요일, CMD 순서로 6가지를 작성하면 된다. 분, 시 등 사이에는 Space로 구분한다.

분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-6, 일요일 시작) 실행할_CMD

그림 1에 현재 등록된 CMD 2개를 확인 할 수 있다. 처음 등록된 CMD는 월요일~금요일 사이 9시 50분이 되면 등록된 CMD를 실행한다. 월, 일은 “*”로 표시하였으며 해당 부분은 무시하고 월~금요일에 CMD를 실행한다. 아래 CMD는 출처 1에서 보여준 몇 가지 예시를 정리해보았다.

#매 1분마다 CMD를 실행하기
* * * * * CMD 

#매시 20, 40분에 CMD 실행하기 (,를 사용해서 2개의 시간대를 선택함)
20,40 * * * * CMD

#15분마다 CMD 실행하기
*/15 * * * * CMD

#6시간 마다 CMD 실행하기
0 */6 * * * CMD

#일요일,월요일 10시에 CMD 실행하기 (,를 사용해서 여러 요일을 선택함)
0 10 * * 0,1 CMD

등록된 CMD 삭제하기

등록된 CMD를 삭제하는 방법은 크게 2가지이다. 첫 번째 방법은 Crontab에 CMD를 등록하는 CMD를 실행하여 원하지 않는 CMD를 Editor에서 제거하면 된다. 다른 방법은 아래 CMD를 실행하여서 등록된 모든 CMD를 한 번에 제거하면 된다.

$crontab -r

출처

  1. https://blog.naver.com/PostView.nhn?blogId=shino1025&logNo=221432633410&parentCategoryNo=&categoryNo=21&viewDate=&isShowPopularPosts=true&from=search

Leave a Comment