crontab 개요
crontab은 'cron table'의 줄임말로, 사용자의 스케줄링된 작업을 담고 있는 파일입니다. 이 파일의 각 줄은 하나의 작업(job)을 정의하며, cron 데몬이 이 파일을 읽어 정해진 시간에 작업을 실행합니다.
crontab 필드 구조
crontab 파일의 각 줄은 6개의 필드로 구성됩니다. 앞의 5개 필드는 실행 시간을 정의하고, 마지막 필드는 실행할 명령어를 정의합니다.
필드 | 설명 | 범위 |
---|---|---|
1 | 분(Minute) | 0-59 |
2 | 시간(Hour) | 0-23 |
3 | 일(Day of month) | 1-31 |
4 | 월(Month) | 1-12 |
5 | 요일(Day of week) | 0-7 (0과 7은 일요일) |
6 | 명령어 | 실행할 명령어 또는 스크립트 |
특수 문자
시간 필드에 사용되는 특수 문자들을 활용하여 더욱 유연하게 시간을 지정할 수 있습니다.
- `*`: 모든 시간 (예: 매 분, 매 시간)
- `,`: 여러 값 지정 (예: `1,3,5` -> 1, 3, 5분)
- `-`: 범위 지정 (예: `10-15` -> 10분부터 15분까지)
- `/`: 간격 지정 (예: `*/10` -> 10분마다)
주요 옵션
crontab 명령어의 핵심 기능인 crontab 파일 관리 옵션들을 살펴보세요.
1. crontab 파일 관리
2. 사용자 관리
생성된 명령어:
명령어를 조합해 보세요.
설명:
`crontab` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
자주 사용되는 예시
crontab을 활용하여 다양한 반복 작업을 설정하는 방법을 배워보세요.
매일 새벽 2시 30분에 백업 스크립트 실행
crontab -e
30 2 * * * /home/user/backup.sh
`/home/user/backup.sh` 스크립트를 매일 새벽 2시 30분에 실행하도록 설정합니다.
매주 월요일 8시에 시스템 업데이트
crontab -e
0 8 * * 1 sudo apt update && sudo apt upgrade -y
매주 월요일 오전 8시에 시스템 패키지를 업데이트합니다. (Ubuntu/Debian 기준)
10분마다 로그 파일 정리
crontab -e
*/10 * * * * echo '' > /var/log/app.log
10분 간격으로 `/var/log/app.log` 파일의 내용을 삭제합니다.
특정 시간에 웹 서버 재시작
crontab -e
0 4 1 * * sudo systemctl restart nginx
매월 1일 새벽 4시에 웹 서버(nginx)를 재시작합니다.
매일 오전 6시부터 오후 6시까지 매시간 작업 실행
crontab -e
0 6-18 * * * /path/to/myscript.sh
오전 6시부터 오후 6시까지 매 시간 정각에 `myscript.sh`를 실행합니다.
crontab 설치 (필요시)
대부분의 리눅스 배포판에 기본적으로 설치되어 있지만, 일부 최소 설치 환경에서는 cron 데몬 패키지를 설치해야 할 수도 있습니다.
Debian/Ubuntu
sudo apt update
sudo apt install cron
Ubuntu 또는 Debian 기반 시스템에서 cron 데몬을 설치합니다.
CentOS/RHEL/Fedora
sudo yum install cronie
sudo systemctl enable crond
sudo systemctl start crond
CentOS, RHEL 또는 Fedora 기반 시스템에서 cron 데몬을 설치합니다.