시스템 관리에서 가장 강력한 자동화 도구는 "정해진 시각에 알아서 도는 작업"이다. 매일 새벽 3시 백업, 매시 정각 로그 정리, 매주 월요일 보고서 생성 — 이 모든 반복 작업을 사람이 일일이 실행하지 않아도 되게 해 주는 것이 **작업 예약(job scheduling)**이다.
리눅스에는 두 종류의 예약 도구가 있다. 반복 실행을 담당하는 cron과, 한 번만 정해진 시각에 실행하는 at/batch다. cron은 데몬(crond)이 분 단위로 깨어나 예약 목록을 검사하고, at은 지정 시각이 되면 큐에 든 작업을 한 번 실행하고 끝낸다. 오늘의 핵심은 cron의 5필드 시간 표기를 정확히 읽고 쓰는 것이다.
cron은 반복 작업을 예약하는 시스템이다. 백그라운드 데몬 crond가 1분마다 깨어나 모든 사용자의 예약 목록(crontab)을 확인하고, 실행 시각이 된 작업을 실행한다. 예약 목록을 담는 파일·테이블을 **crontab(cron table)**이라 부른다.
사용자별 crontab을 관리하는 명령이 crontab이다.