> 패키지 및 시스템 관리 > crontab

crontab 명령어 완벽 가이드: 반복 작업을 예약하는 방법

`crontab`은 리눅스/유닉스 시스템에서 사용자가 정해진 시간에 특정 명령어나 스크립트를 주기적으로 실행하도록 예약하는 데 사용되는 명령어입니다. 시스템 유지보수, 백업, 데이터 동기화 등 반복적인 작업을 자동화할 때 매우 중요한 역할을 합니다.

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 데몬을 설치합니다.


관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.


동일 카테고리 명령어