반응형
크론(cron)과 크론탭(crontab)이란?
크론(cron)은 Unix계열 운영체제(Linux, macOS 등)에서 특정 시간에 반복적으로 명령어를 실행하도록 도와주는 데몬(백그라운드에서 실행되는 서비스)이라 할 수 있습니다
크론탭(crontab)은 크론(cron) 데몬이 참고하는 설정 파일이다
사용자가 리눅스 환경에서 특정 시간에 반복적으로 실행해야 하는 작업을 예약하고,
주기적으로 실행해야 하는 백업, 로그 정리, 시스템 모니터링 스크립트 등을 설정할 때 유용하다
정리하면
cron : 예약된 작업을 실행하는 데몬(서비스)
crontab : cron이 참조하는 설정 파일
cron job : crontab에 등록된 개별 작업(명령어)
1. 크론탭(crontab) 기본 형식
* * * * * 명령어
│ │ │ │ │
│ │ │ │ └── 요일 (0-7, 0과 7은 일요일)
│ │ │ └──── 월 (1-12)
│ │ └────── 일 (1-31)
│ └──────── 시 (0-23)
└────────── 분 (0-59)
# 사용예시
#3분마다 실행 (00:03, 00:06, 00:09, ...)
*/3 * * * * command
#매시간 3분에 실행 (00:03, 01:03, 02:03, ...)
3 * * * * command
#매시간 정각 실행 (분 : 0, 시 : 3)
0 3 * * * command
# 매시간 30분에 실행 (분: 30, 시: 18)
30 18 * * * command
# 매월 1일 실행 (일: 1, 월: 1)
0 0 1 1 * command
# 매월 15일 실행 (일: 15, 월: 7)
0 0 15 7 * command
매주 일요일 실행
0 0 * * 0 command
# 매주 금요일 실행
0 0 * * 5 command
2. 크론탭(crontab) 관련 주요 명령어
# 크론탭 목록 보기
crontab -l
# 크론탭 편집
crontab -e
# 크론탭 삭제
crontab -r
# 크론 서비스 상태 확인 및 재시작
systemctl status cron # 크론 상태 확인
systemctl restart cron # 크론 서비스 재시작
3. 간단한 사용 예시
→ 1분마다 화면에 "Hello crontab!!"이라고 찍히는 crontab을 생성해 보자
#hello.txt 파일 생성
echo "Hello Crontab!!" > ~/hello.txt
#Crontab 설정(1분마다 출력)
crontab -e
#아래 내용 추가 후 저장
* * * * * cat ~/hello.txt
#crontab 등록 확인
crontab -l
#실행 확인 시스템 로그 확인
tail -f /var/log/syslog # Ubuntu/Debian
tail -f /var/log/cron # CentOS/RHEL
위에처럼하고 터미널 창에서 기다리면 아무것도 출력이 되지 않는다
이유는!! cron은 기본적으로 백그라운드에서 실행되므로 화면에 직접 출력이 되지 않는다
이를 해결하려면 아래와 같이 크론탭(crontab) 설정을 수정해 주어야 한다
echo의 출력을 tty(터미널)로 보내야 한다
#tty 번호확인
tty
결과가 /dev/pts/0 나오면 아래와 같이 입력
* * * * * cat ~/hello.txt > /dev/pts/0
이상으로 간단하게 크론탭(crontab) 사용법에 대한 정리 끗
반응형
'WSL2' 카테고리의 다른 글
windows wsl mariadb 설치하기 (wsl2 ubuntu-22.04 활용) (0) | 2025.02.18 |
---|---|
windows wsl docker 설치하기 (wsl2 ubuntu-22.04 활용) (0) | 2025.02.18 |
windows wsl 설치하여 linux 환경 세팅 하기 (wsl2 기준) (0) | 2025.02.13 |