크론
크론(cron)은 리눅스 서버에서 정해 둔 시각마다 명령을 알아서 실행해 주는 예약 도우미예요. crontab 에 분·시·일·월·요일 다섯 칸과 명령을 한 줄로 적어요.
목차 보기
크론(cron)은 리눅스 서버에서 정해 둔 시각마다 명령을 알아서 실행해 주는 예약 도우미예요. 휴대폰 알람과 비슷해요. "매일 새벽 3시"라고 맞춰 두면, 사람이 자고 있어도 그 시각에 백업이나 정리 작업을 돌려요.
글쓴이 서순명(솔리드그루 이사 · 퓨쳐인프라 운영) · 2026년 10월 29일 직접 실행·공식 문서 대조
한눈에 보기
- 예약 목록을 crontab(크론탭)이라고 불러요.
crontab -e로 고치고crontab -l로 봐요. - 한 줄에 시간 다섯 칸과 명령을 적어요. 다섯 칸은 분·시·일·월·요일 순서예요.
- 크론은 1분마다 목록을 확인해요. 그래서 가장 짧은 간격은 1분이에요.
- 명령 안의
%는\%로 적어야 해요. 아래에서 직접 확인했어요.
크론은 어떻게 동작하나요?
서버 안에는 cron이라는 프로그램이 늘 켜져 있어요. 이 프로그램이 1분마다 예약 목록을 훑어봐요. 지금 시각과 맞는 줄이 있으면 그 명령을 실행해요. crontab 매뉴얼에도 1분마다 확인한다고 적혀 있어요.
예약 목록은 사용자마다 따로 있어요. 내가 등록한 줄은 내 권한으로 돌아요. 시스템 전체용 목록은 /etc/crontab과 /etc/cron.d/에 있어요.
다섯 칸은 어떻게 읽어요?
| 칸 | 뜻 | 쓸 수 있는 값 |
|---|---|---|
| 1번째 | 분 | 0~59 |
| 2번째 | 시 | 0~23 |
| 3번째 | 일 | 1~31 |
| 4번째 | 월 | 1~12 |
| 5번째 | 요일 | 0~7 (0과 7이 일요일) |
*는 "아무 때나"예요. */5는 "5마다", 1-5는 "1부터 5까지", 1,15는 "1과 15"예요. 자주 쓰는 식을 모아 봤어요.
| 식 | 언제 돌아요? |
|---|---|
* * * * * | 1분마다 |
*/5 * * * * | 5분마다 |
0 3 * * * | 매일 3시 0분 |
30 9 * * 1-5 | 월~금 9시 30분 |
0 0 1 * * | 매달 1일 0시 |
@reboot | 서버가 켜질 때 한 번 |
직접 해 보기 — 1분마다 로그 남기기
2026년 10월 29일 22시 51분(한국 시각)에 직접 돌렸어요. 윈도우 11 PC의 Docker Desktop에서 깨끗한 ubuntu:24.04 컨테이너를 띄웠어요. 컨테이너용 우분투에는 cron이 없어서 먼저 깔았어요.
$ apt install -y cron (설치된 판: cron 3.0pl1-184ubuntu2) $ crontab -l no crontab for root $ echo '* * * * * date "+\%H:\%M:\%S 크론이 돌았어요" >> /root/cron.log 2>&1' | crontab - $ crontab -l * * * * * date "+\%H:\%M:\%S 크론이 돌았어요" >> /root/cron.log 2>&1 $ service cron start * Starting periodic command scheduler cron ...done. (3분 기다린 뒤) $ cat /root/cron.log 13:52:03 크론이 돌았어요 13:53:04 크론이 돌았어요 13:54:04 크론이 돌았어요
매분 0~4초 사이에 한 줄씩 찍혔어요. 끝의 >> /root/cron.log 2>&1은 결과와 오류를 파일에 붙여 쓰라는 뜻이에요. 이걸 빼면 크론이 돌았는지 확인하기 어려워요.
그런데 시각이 13시예요. 실제로는 한국 시각 22시 52분이었어요. 컨테이너 시간대가 UTC(세계 표준시)라서 9시간 차이가 나요. 크론은 서버 시간대를 따라요.
등록했는데 왜 안 돌까요?
가장 흔한 원인은 %예요. 우분투 crontab 매뉴얼에 따르면 명령 속 %는 줄바꿈으로 바뀌어요. 그 뒤 내용은 명령에 전달되지 않아요. 두 줄을 나란히 걸어 직접 확인했어요(같은 날 22시 55분).
$ crontab -l * * * * * date +%H:%M >> /root/bad.log 2>&1 * * * * * date +\%H:\%M >> /root/good.log 2>&1 (75초 뒤) $ cat /root/bad.log cat: /root/bad.log: No such file or directory $ cat /root/good.log 13:56
%를 그대로 둔 줄은 로그 파일조차 생기지 않았어요. % 뒤의 >> bad.log가 잘려 나갔기 때문이에요. 역슬래시를 붙인 줄만 제대로 찍혔어요.
크론 안의 환경도 찍어 봤어요(같은 날 23시 04분). PATH는 터미널과 거의 같았고, 셸은 SHELL=/bin/sh였어요. 터미널에서 쓰던 bash 설정은 크론에 따라오지 않아요.
| 증상 | 원인 | 고치는 법 |
|---|---|---|
| 아무것도 안 찍혀요 | 명령 속 % | \%로 바꿔요 |
| 시각이 9시간 어긋나요 | 서버 시간대가 UTC | UTC로 계산하거나 서버 시간대를 바꿔요 |
| 터미널에선 되는데 크론에선 안 돼요 | 크론은 /bin/sh로 돌고 내 .bashrc 설정(가상환경·별칭)을 읽지 않아요 | /usr/bin/python3처럼 전체 경로로, 필요한 설정은 명령 안에 적어요 |
| 스크립트가 안 돌아요 | 실행 권한이 없어요 | chmod +x 파일 또는 bash 파일로 적어요 |
자주 하는 오해
| 오해 | 실제 |
|---|---|
| 초 단위로도 예약할 수 있어요 | 다섯 칸에는 초가 없어요. 가장 짧은 간격은 1분이에요. |
| crontab 을 고치면 재시작해야 해요 | crontab -e로 저장하면 cron이 알아서 다시 읽어요. |
| 일과 요일을 같이 적으면 둘 다 맞아야 돌아요 | 둘 다 *가 아니면 둘 중 하나만 맞아도 돌아요. 매뉴얼에 적힌 규칙이에요. |
| 서버가 꺼져 있던 시간도 나중에 돌려 줘요 | 꺼져 있던 동안의 예약은 그냥 지나가요. |
퓨쳐인프라에서는
퓨쳐인프라 가상서버는 Ubuntu·Debian 같은 리눅스로 만들어요. 서버 안에서 위와 똑같이 crontab -e로 예약을 걸 수 있어요. 크론은 서버가 켜져 있어야 돌아요. 매일 새벽 백업처럼 늘 돌려야 하는 일이면 서버를 켜 두는 쪽이 맞아요.
요금은 분 단위예요. Nano(1코어·1GB·30GB)를 한 달 내내 켜 두면 9,000원이에요(2026-10-29 요금표 기준, 부가세 포함). 크론 작업 전에 서버 스냅샷을 찍어 두면 잘못돼도 되돌릴 수 있어요. 스냅샷은 무료예요.
자주 묻는 질문
cron 과 crontab 은 뭐가 달라요?
cron은 예약을 실행하는 프로그램이에요. crontab은 예약 목록이자 그 목록을 고치는 명령이에요.
크론 로그는 어디서 봐요?
명령 끝에 >> 파일 2>&1을 붙여 직접 남기는 게 가장 확실해요. 우분투는 시스템 로그(journalctl -u cron)에도 실행 기록이 남아요.
5분마다 돌리려면 어떻게 써요?
*/5 * * * * 명령이에요. 매일 새벽 3시는 0 3 * * * 명령이에요.
crontab -r 은 뭐예요?
예약 목록 전체를 지우는 명령이에요. -e와 자판이 가까워 실수하기 쉬우니 crontab -l > 백업파일로 먼저 저장해 두세요.
이 글의 출처(2026-10-29 확인)
- crontab(5), man7.org — 다섯 칸 값, 1분마다 확인, @reboot 같은 줄임말
- crontab(5), Ubuntu 24.04 —
%규칙 - 실행 결과 — 글쓴이가 ubuntu:24.04 컨테이너에서 직접 돌린 값
관련 용어
리눅스 · 우분투 · SSH · 백업 · 스냅샷 · 서버 모니터링
- 작성: 서순명(솔리드그루 이사 · 퓨쳐인프라 — 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 를 운영) · 작성일 2026년 10월 29일
- 운영사: 솔리드그루 · 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계: 실행 결과는 2026-10-29 윈도우 11 PC의 Docker Desktop에서 띄운 ubuntu:24.04 컨테이너(cron 3.0pl1) 기준이에요. 다른 배포판이나 크론 구현(cronie 등)은 세부 규칙이 조금 다를 수 있어요.
- 이해관계: 퓨쳐인프라는 크론을 쓸 수 있는 리눅스 가상서버를 파는 회사예요. 이 글에는 자사 서비스 안내가 들어 있어요.
연관 서비스
많이 본 글
-
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글 0
로그인하면 댓글을 남길 수 있습니다.