프로필사진
DevOps 부트캠프 기록일지
DevOps_04_김재환
05_Study(cron 데몬)
05_Study(cron 데몬)

2023. 3. 13. 14:24부트캠프/DevOps (TIL)

대표적인 데몬중 하나인 cron 데몬에 대해 알아보겠습니다.

 

cron 데몬은 스케쥴에 따라 명령을 실행하는 도구입니다. 예를 들어, “매일 오후 10시에 백업 명령을 수행해줘”와 같은 작업을 가능하게 합니다. cron은 해당 작업을 백그라운드에서 실행하며(즉, 데몬입니다), 따라서 사람의 개입 없이 자동적으로 주기에 따라 명령을 실행할 수 있습니다.

 

cron 실습

여기선 간단하게 “매 분마다 날짜와 시스템 가동시간을 파일에 기록해줘”라는 명령을 실행해볼겁니다.

nano 에디터가 열리면 맨 아랫줄에 다음과 같이 입력하세요.

* * * * * echo $(/bin/date) - $(/usr/bin/uptime) >> ~/uptime.log

위 내용을 간략하게 해석하면 date 명령의 출력과 uptime 명령의 출력을 합쳐서 홈 디렉토리의 uptime.log 에 기록하는 명령을 매 분마다 실행합니다. * * * * * 는 매 분을 뜻합니다.

파일을 저장하고 에디터를 닫으면, 성공적으로 스케쥴에 의한 명령(job)이 등록되었음을 확인할 수 있습니다.

crontab: installing new crontab

지금부터 cron 데몬은 이 crontab에 기록한 내용에 따라, 스케쥴에 의한 명령을 실행합니다.

1분 후, 2분 후에 uptime.log 파일을 살펴보세요.

이처럼 cron이라는 데몬은 백그라운드에서 주기적으로 명령을 실행하는 역할을 수행합니다.

 

반드시 crontab을 초기화하세요

이 예제를 끝내기 전에 반드시 해야 할 일은, 매 분마다 한 줄씩 늘어나는 uptime.log 파일이 한없이 커지지 않도록, 방금 만든 crontab을 삭제해야 합니다.

1
2
3
$ crontab -r 
$ crontab -l
no crontab for ubuntu

no crontab for 사용자이름 가 출력되는지 확인하세요.

 

Q. 만일 매일 밤 10시에 명령을 실행하려면, 어떤 표현식을 사용해야 할까요?

 

0 20 * * *

 

Q. At 04:05 on Sunday

 

5 4 * * sun

 

Q. At 04:00 on every day-of-month from 8 through 14

 

0 4 8 - 14 * *