✅ crontab 기본 명령어
| 명령어 | 설명 |
|---|---|
crontab -e | 현재 사용자에 대한 크론 편집 |
crontab -l | 등록된 크론 작업 목록 확인 |
crontab -r | 현재 사용자의 크론 작업 전체 삭제 |
crontab -u [USER] -e | 특정 사용자의 크론 편집 (root만 가능) |
⏰ crontab 시간 형식
scss복사편집* * * * * 명령어
│ │ │ │ │
│ │ │ │ └─ 요일 (0~7) (0과 7은 일요일)
│ │ │ └─── 월 (1~12)
│ │ └───── 일 (1~31)
│ └─────── 시 (0~23)
└───────── 분 (0~59)
예시:
| 스케줄 | 의미 |
|---|---|
0 3 * * * | 매일 새벽 3시에 실행 |
*/10 * * * * | 10분마다 실행 |
0 9-17 * * 1-5 | 평일 오전 9시부터 오후 5시까지 매시 정각 실행 |
0 0 1 * * | 매달 1일 0시에 실행 |
0 22 * * 0 | 매주 일요일 밤 10시에 실행 |
📂 로그 확인
기본적으로 크론 작업은 시스템 로그에 기록됩니다:
- Ubuntu:
/var/log/syslog - CentOS/RHEL:
/var/log/cron
예:
grep CRON /var/log/syslog⚠️ 주의사항
- 환경 변수 차이:
crontab은 로그인 쉘이 아니므로PATH가 다를 수 있음.- 명령어 앞에 전체 경로 사용 권장 (예:
/usr/bin/python3등) - 또는 스크립트에
#!/bin/bash와export PATH=...명시
- 명령어 앞에 전체 경로 사용 권장 (예:
- 출력 리디렉션: 오류나 출력을 파일로 저장하려면 다음과 같이 설정:
* * * * * /path/to/script.sh >> /path/to/logfile.log 2>&1- 권한 확인: 실행하려는 스크립트는 실행 권한이 있어야 함 (
chmod +x script.sh)
🎯 실용 예시
- 매일 1시에 백업 실행
0 1 * * * /home/user/backup.sh- 매 5분마다 웹서버 확인
*/5 * * * * curl -fs http://localhost:80 || systemctl restart nginx- Python 스크립트 실행
0 0 * * * /usr/bin/python3 /home/user/script.py