본문 바로가기
Engineering WIKI/Docs

Cron 이란? (크론 개념 뿌시기! 핵심 개념 기술!)

by wonos 2019. 8. 6.

  • 리눅스에서는 cron을 통해 스케쥴러를 실행할 수 있다.
  • 윈도우에서도 리눅스처럼 cron을 할 수 있는 방법!!
    • 윈도우즈에서 작업 스케줄러가 리눅스에서 cron 역할을 한다.
    • 윈도우즈는 GUI(Graphic User Interface)로 되어 있어 화면을 보고 마우스로 쉽게 설정 할 수 있는 반면 리눅스는 쉘에서 텍스트 형태로 작성!
    • 리눅스 개념 설명 후 윈도우 작업 스케줄러 설명!

 

1. 리눅스의 cron(crontab)

  • crontab → cron을 관리하는 table을 말한다.
  • Mac OS x도 유닉스 계통이기 때문에 리눅스와 마찬가지로 cron을 스케줄러로 사용

1.1 crontab 명령어

명령어 설명
crontab -e 예약작업 설징 및 수정
crontab -l 예약된 작업의 목록 보기
crontab -r 예약된 작업 삭제

1.2 설정하기

  • cron을 설정하기 위해서는 crontab -e를 입력하면 된다.
$ crontab -e 
  • crontab -e 명령어를 처음 실행하면 아무 내용이 없는 빈 화면이 나오고 이미 설정이 되어 있는 경우라면 내용을 편집할 수 있는 화면이 나옵니다.
  • 빈 화면이 나왔다는 가정하에 아래와 같이 가장 기본적인 명령어를 입력을 하고 저장을 합니다.
## 매 1분마다 `ls-l` 명령어를 실행 

* * * * * ls -l
  • 앞쪽에 있는 와일드카드 5개는 실행하는 주기를 설정하는 것이고 마지막 뒤에 있는 <실행 명령어>는 해당 주기에 따라 실행되는 명령어 입니다. 쉘명령어 뿐만아니라 스크립트도 실행할 수 있습니다.
  • 한 주기에 해당하는 명령어 당 한줄로 작성을 해야 합니다.
  • 5개의 와일드카드의 의미는 아래와 같습니다.

*      *      *      *      * 
분(0-59) 시간(0-23) 일(1-31) 월(1-12)  요일(1-7) 7 이나 0 은 모두 일요일을 가리킴
제목 예제 설명
와일드카드 * 전체를 지정
지정 0,10,20,30 0,10,20,30 각 값을 지정
범위 1-10 1 ~ 10까지의 범위를 지정
간격 */10 10, 20 등 10단위 간격을 지정
# 매주 화요일 오전 3시에 ls -l 실행 
0 3 * * 2 ls-l  
    
# 매일 매시간 0분, 30분에 ls-l 실행 
0,30 * * * * ls-l  
    
# 매일 3시부터 30분까지 매분마다 ls-l 실행 
0-30 3 * * * ls-l  
    
# 매일 3시부터 매 10분마다 ls-l 실행 
*/10 3 * * * ls-l  
    
# 매월 21일에서 25일까지 3시에 매 10분마다 ls-l 를 실행 
*/10 3 21-25 * * ls-l
1-3. 로그남기기
  • 작성한 crontab가 잘 실행이 되었는지 로그를 남길 수 있습니다.
# 로그기록 작성 * * * * * node test.js > /home/script/test.js.log 2>&1  

# 로그기록 누적 작성 * * * * * node test.js >> /home/script/test.js.log 2>&1

crontab 설정 변경내용 적용

  • crontab -e로 새롭게 저장한 뒤에는 crontab 변경 내용에 대해서 명령어로 재시작 또는 시작해줘야 한다.
  • ubuntu 환경의 경우 service cron start 였지만 OS마다 명령어가 조금씩 다르다. 찾은 김에 linux, ubuntu를 아래와 같이 정리한다.OS ubuntu linux
    시작 service cron start service crond start
    재시작 service cron restart service crond restart
    중단 service cron stop service crond stop

2. 윈도우즈의 작업 스케줄러

  • 제어판 → 관리도구 → 작업 스케줄러
  1. 작업 스케줄러가 열렸으면 먼저 작업스케줄러(로컬)이 선택된 상태에서 우측에 있는 작업만들기 메뉴를 클릭
  2. 작업스케줄러가 새로 생성이 되면 일반탭에서 이름을 입력하고 확인을 클릭
  3. 트리거탭을 클릭한 후 새로만들기를 클릭ㅊ
  4. 트리거 설정화면이 나오면 작업시작을 예약상태로 놔두고 주기를 설정한 후 확인을 클릭
  5. 다음으로 동작탭을 클릭 후 새로만들기를 클릭
  6. 동작 설정하면이 나오면 실행하기 원하는 프로그램이나 실행파일을 선택하고 확인을 클릭