Cron 작업
A cron job is a time-based job scheduler in Unix-like operating systems that allows users to execute commands or scripts automatically at specified intervals or...
Cron 작업은 Unix 계열 운영 체제에서 시간 기반 작업 스케줄러입니다. 사용자가 지정된 시간, 날짜 또는 간격으로 명령이나 스크립트를 자동으로 실행하도록 예약할 수 있습니다. 핵심 구성 요소는 cron 데몬으로, 예약된 작업을 위해 사용자 정의 구성 파일(일명 crontab)을 지속적으로 확인하는 백그라운드 프로세스입니다. 각 사용자는 자체 crontab 파일을 가질 수 있으며 시스템 전체의 crontab 파일도 있습니다. Cron 작업을 정의하는 구문은 실행할 명령 앞에 5개의 시간 및 날짜 필드를 포함합니다: 분(0-59), 시간(0-23), 월의 일(1-31), 월(1-12), 요일(0-7, 여기서 0과 7은 모두 일요일을 나타냄). 필드의 별표()는 해당 필드의 "모든 가능한 값"을 의미합니다. 예를 들어, 0 2 /path/to/script.sh는 매일 오전 2시에 /path/to/script.sh 스크립트를 실행합니다. Cron 작업은 시스템 유지 관리, 백업, 데이터 동기화, 보고서 생성 및 주기적인 알림 전송과 같은 반복적인 작업을 자동화하는 데 필수적입니다. 잘못 구성하면 작업이 누락되거나 의도하지 않은 실행이 발생할 수 있으므로 신중한 계획과 테스트가 필요합니다.
graph LR
Center["Cron 작업"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5살도 이해할 수 있게 설명
컴퓨터가 특정 시간에 쓰레기를 버리거나 식물에 물을 주는 것과 같은 집안일을 자동으로 하도록 알람 시계를 설정하는 것과 같습니다.
🤓 Expert Deep Dive
그리스어 'chronos'(시간)에서 파생된 Cron은 Unix 계열 시스템에서 작업 자동화를 위한 기본 유틸리티입니다. cron 데몬(crond)은 매분 깨어나 해당 분에 실행되도록 예약된 작업이 있는지 crontab 파일을 확인합니다. Crontab 파일에는 스케줄(시간 필드)과 실행할 명령 또는 스크립트를 지정하는 항목이 포함되어 있습니다. 시간 지정은 * command라는 특정 구문을 사용합니다. 각 별표는 시간 단위(분, 시간, 월의 일, 월, 요일)를 나타냅니다. 쉼표(목록), 하이픈(범위), 별표(와일드카드)와 같은 특수 문자는 유연성을 제공합니다. 시스템 전체 crontab( /etc/crontab, /etc/cron.d/ 등)은 시스템 관리 작업을 허용하는 반면, 사용자 crontab(crontab -e)은 개별 사용자 작업을 위한 것입니다. Cron 작업의 환경 변수 및 실행 컨텍스트는 대화형 셸과 상당히 다를 수 있으며, 스크립트가 환경에 구애받지 않도록 작성되지 않은 경우(예: 실행 파일에 대한 전체 경로 지정) 문제가 발생하는 경우가 많습니다. Anacron은 시스템이 꺼져 있어서 놓쳤을 수 있는 작업을 실행하도록 설계된 관련 유틸리티로, 노트북이나 간헐적으로 연결된 시스템에 적합합니다.