서버를 운영하다 보면 매일 백업을 돌리거나, 매주 로그를 정리하거나, 정해진 시간에 스크립트를 실행해야 할 일이 생깁니다. 이런 반복 작업을 사람이 직접 하면 빠뜨리기 쉽습니다. 리눅스의 **크론탭(crontab)**을 쓰면 정해진 시간에 작업을 자동으로 실행할 수 있습니다.
1. 크론탭이란
크론(cron)은 리눅스의 작업 스케줄러입니다. 크론탭은 “언제, 무엇을 실행할지”를 적어두는 설정표입니다. 한 번 등록해두면 서버가 알아서 정해진 시각에 작업을 실행합니다.
2. 크론탭 편집하기
현재 사용자의 크론탭을 편집하려면 다음 명령을 사용합니다.
crontab -e
등록된 내용을 확인하려면:
crontab -l
3. 시간 표현 규칙
크론탭의 한 줄은 다섯 개의 시간 필드와 실행할 명령으로 구성됩니다.
분 시 일 월 요일 실행할 명령
* * * * *
| 필드 | 범위 |
|---|---|
| 분 | 0~59 |
| 시 | 0~23 |
| 일 | 1~31 |
| 월 | 1~12 |
| 요일 | 0~7 (0과 7은 일요일) |
*는 “매번”을 뜻합니다.
4. 실전 예시
매일 새벽 3시에 백업 스크립트 실행
0 3 * * * /home/deploy/backup.sh
5분마다 상태 점검 스크립트 실행
*/5 * * * * /home/deploy/check.sh
매주 일요일 새벽 4시에 로그 정리
0 4 * * 0 /home/deploy/clean_logs.sh
매월 1일 자정에 보고서 생성
0 0 1 * * /home/deploy/report.sh
5. 로그 남기기
작업이 제대로 실행됐는지 확인하려면 결과를 파일로 남기는 것이 좋습니다.
0 3 * * * /home/deploy/backup.sh >> /home/deploy/backup.log 2>&1
>>는 결과를 파일에 이어쓰고, 2>&1은 오류 메시지까지 함께 기록합니다.
6. 자주 하는 실수
크론은 사용자의 일반 환경 변수를 그대로 쓰지 않습니다. 그래서 스크립트 안에서는 명령어의 전체 경로를 명시하거나, 스크립트 상단에 필요한 환경 변수를 직접 지정하는 것이 안전합니다. 또한 실행 권한이 없으면 동작하지 않으니 chmod +x로 권한을 부여하세요.
마무리
크론탭은 서버 운영을 자동화하는 가장 기본적이면서 강력한 도구입니다. 시간 다섯 필드 + 실행 명령이라는 구조만 익히면 백업, 정리, 점검 같은 반복 작업을 모두 맡길 수 있습니다. 처음에는 간단한 로그 출력부터 시작해 점차 자동화 범위를 넓혀 보세요.