반응형
이 글은 공부하며 정리한 내용입니다. 틀리거나 보완할 점이 있다면 댓글로 알려주시면 감사하겠습니다.
1. 핵심 요약
- cron은 리눅스/유닉스 기반 시스템에서 사용되는 시간 기반 작업 스케줄러이다.
- 사용자가 원하는 특정 시간 또는 주기에 맞춰 자동으로 스크립트나 명령을 실행할 수 있도록 해준다.
- cron 작업은 crontab 파일에 정의되며, 사용자는 crontab -e 명령어로 이를 설정할 수 있다.
2. 상세 내용 설명
2-1. cron과 crontab의 차이
- cron: 실제로 백그라운드에서 실행 중인 데몬(daemon)으로, 지정된 시간에 작업을 실행하는 역할을 함
- crontab: cron 작업의 설정 파일이며, 사용자마다 별도의 crontab을 가지고 설정할 수 있음 (cron + table의 줄임말)
💡 데몬(daemon)이란?
- 시스템 부팅 시 자동 실행되어 백그라운드에서 계속 동작하는 프로그램
- 사용자의 직접적인 명령 없이도, 시스템이나 설정에 따라 자동으로 특정 작업을 수행
- cron도 그런 데몬 중 하나로, 시간 기반의 스케줄을 감지하여 등록된 작업을 실행
2-2. cron 동작 흐름
(아래는 실제 운영 시 알아두면 좋은 팁입니다: 로그 남기기, 실행 여부 확인 등)
- cron 데몬이 시스템에서 실행 중임
- 사용자가 crontab -e 명령어로 작업 스케줄을 설정
- 설정된 주기대로 명령어 또는 스크립트가 실행됨
2-3. 자주 사용하는 명령어
명령어 설명
crontab -e | 크론 작업 설정/수정 |
crontab -l | 현재 등록된 크론 작업 목록 보기 |
crontab -r | 크론 작업 전체 삭제 (주의!) |
service cron start | 크론 데몬 시작 |
service cron restart | 크론 데몬 재시작 |
service cron status | 크론 데몬 상태 확인 |
시스템에 따라 systemctl 명령어를 사용하는 경우도 있음: sudo systemctl restart cron
2-4. 시간 표현 형식 (crontab 문법)
crontab의 시간 표현은 다음과 같은 5개의 필드로 구성된다:
* * * * * <실행할 명령어>
│ │ │ │ │
│ │ │ │ └─ 요일 (0=일요일 ~ 6=토요일)
│ │ │ └─── 월 (1~12)
│ │ └───── 일 (1~31)
│ └─────── 시 (0~23)
└───────── 분 (0~59)
예시:
- 0 3 * * * /home/user/backup.sh → 매일 오전 3시에 백업 스크립트 실행
- */10 * * * * /home/user/ping.sh → 10분마다 실행
온라인에서 crontab 설정을 쉽게 만들 수 있는 도구도 있다:
- CronMaker (웹 기반)
cron은 리눅스 환경에서 매우 널리 사용되는 자동화 도구이며, 정기적인 데이터 처리, 백업, 로그 정리 등 다양한 작업에 필수적이다.
특히 데이터 엔지니어링, 서버 관리, 배치 처리 작업에서 cron은 거의 항상 쓰인다고 해도 과언이 아니다.
2-5. 로그
로그 남기기
cron은 기본적으로 실행 결과를 로그 파일에 자동 저장하지 않으므로, 명시적으로 리디렉션을 통해 로그를 남겨야 한다.
* * * * * /path/to/script.sh >> /var/log/myscript.log 2>&1
- >>는 로그를 이어 쓰기(append)하는 연산자이고,
- 2>&1은 에러 출력(stderr)을 일반 출력(stdout)으로 합쳐서 모두 기록하는 의미다.
cron 실행 내역 확인
Ubuntu 기준, cron 작업이 실제로 실행됐는지는 시스템 로그에서 확인할 수 있다:
grep CRON /var/log/syslog
cron 실행 실패, 권한 문제 등도 이 로그에서 추적할 수 있다.
4. 참고 자료
반응형
'Linux' 카테고리의 다른 글
nohup & 로그 파일명 지정 – 백그라운드 실행과 로그 관리 정리 (0) | 2022.04.24 |
---|---|
[Linux] Ubuntu에서 RPM 파일 설치 (0) | 2022.02.19 |
[Linux] 파일 개수 & 폴더(디렉터리) 개수 (0) | 2021.03.20 |
댓글