IT 기술 문서
CentOS 7 유용한 명령어 시리즈 - ⑧ 크론 작업(스케줄링) 관리
- it33 오래 전 2025.02.01 17:01
-
39
0
CentOS 7에서는 특정 작업을 일정한 시간 간격으로 실행하기 위해 **크론(cron)**을 사용할 수 있습니다. 이 글에서는 크론 작업(스케줄링)을 설정하고 관리하는 방법을 정리하겠습니다.
크론(cron) 개요
cron
은 특정 시간마다 자동으로 명령을 실행하는 스케줄러입니다.사용자는 개별적으로 crontab(크론탭)을 설정하여 원하는 작업을 예약할 수 있습니다.
1. 크론 작업 관리 기본 명령어
1.1. 크론 작업 목록 확인
crontab -l
현재 사용자(
root
포함)의 등록된 크론 작업을 출력합니다.
1.2. 크론 작업 추가 및 수정
crontab -e
현재 사용자 계정의 크론 작업을 편집할 수 있습니다.
기본 편집기는
vi
또는nano
가 사용됩니다.
1.3. 특정 사용자 크론 작업 확인
crontab -u username -l
특정 사용자의 크론 작업을 조회합니다.
1.4. 크론 작업 삭제
crontab -r
현재 사용자의 모든 크론 작업을 삭제합니다.
1.5. 특정 사용자 크론 작업 삭제
crontab -u username -r
특정 사용자의 크론 작업을 삭제합니다.
2. 크론 스케줄 설정 형식
2.1. 크론 스케줄 형식
크론탭을 설정할 때는 다음과 같은 형식을 사용합니다.
* * * * * command
분 시 일 월 요일 실행할_명령어
각 필드는 다음을 의미합니다:
필드 | 설명 | 값의 범위 |
---|---|---|
분 | 몇 분에 실행할지 설정 |
|
시 | 몇 시에 실행할지 설정 |
|
일 | 몇 일에 실행할지 설정 |
|
월 | 몇 월에 실행할지 설정 |
|
요일 | 요일 지정 (0=일요일, 6=토요일) |
|
3. 크론 예제 설정
3.1. 매일 특정 시간에 실행
0 3 * * * /path/to/script.sh
매일 새벽 3시 0분에
/path/to/script.sh
실행
3.2. 매주 월요일 6시에 실행
0 6 * * 1 /path/to/backup.sh
매주 월요일 오전 6시에 백업 스크립트 실행
3.3. 매월 1일 자정에 실행
0 0 1 * * /path/to/monthly_report.sh
매월 1일 00:00에 리포트 생성
3.4. 매시간마다 실행
0 * * * * /path/to/hourly_task.sh
매 정시(00, 01, 02...)에 실행
3.5. 매 10분마다 실행
*/10 * * * * /path/to/check_status.sh
10분마다 상태 체크 스크립트 실행
3.6. 매 5분마다 특정 사용자로 실행
*/5 * * * * username /path/to/task.sh
5분마다 특정 사용자의 권한으로 실행
3.7. 특정 시간 범위 내 실행
0 9-17 * * * /path/to/work_hours_script.sh
매일 오전 9시부터 오후 5시까지 매 정시에 실행
3.8. 주말(토,일)마다 실행
0 8 * * 6,0 /path/to/weekend_task.sh
토요일과 일요일 오전 8시에 실행
4. 크론 로그 및 디버깅
4.1. 크론 실행 로그 확인
cat /var/log/cron
크론이 정상적으로 실행되었는지 확인
4.2. 크론 실행 테스트
echo "hello" >> /tmp/test_cron.log
크론에
echo
명령을 추가하고 로그가 남는지 확인
4.3. 크론 실행 결과 이메일 알림
MAILTO="admin@example.com"
크론 실행 결과를 이메일로 받도록 설정
4.4. 크론 실행 시 오류 로그 남기기
0 2 * * * /path/to/script.sh >> /var/log/script.log 2>&1
크론 실행 결과를
/var/log/script.log
파일에 저장
5. 시스템 크론 설정 (/etc/crontab
& /etc/cron.d/
)
시스템 전체에서 관리되는 크론 작업은 /etc/crontab
또는 /etc/cron.d/
에서 관리됩니다.
5.1. /etc/crontab
직접 편집
nano /etc/crontab
예제:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# 분 시 일 월 요일 사용자 실행명령어
0 1 * * * root /usr/bin/backup.sh
매일 새벽 1시에
root
사용자로 백업 스크립트 실행
5.2. /etc/cron.daily
, /etc/cron.weekly
, /etc/cron.hourly
활용
/etc/cron.daily/
→ 하루에 한 번 실행/etc/cron.weekly/
→ 일주일에 한 번 실행/etc/cron.hourly/
→ 매시간 실행
cp /path/to/script.sh /etc/cron.daily/
chmod +x /etc/cron.daily/script.sh
script.sh
를/etc/cron.daily/
에 추가하면 매일 실행됨
6. 크론 서비스 관리
크론 서비스가 정상적으로 실행되고 있는지 확인하려면 crond
서비스 상태를 확인해야 합니다.
6.1. 크론 서비스 상태 확인
systemctl status crond
active (running)
상태이면 정상 작동 중
6.2. 크론 서비스 시작
systemctl start crond
crond
서비스를 시작
6.3. 크론 서비스 중지
systemctl stop crond
crond
서비스를 중지
6.4. 크론 서비스 재시작
systemctl restart crond
크론 서비스 재시작
6.5. 크론 서비스 자동 실행 설정
systemctl enable crond
시스템 부팅 시
crond
가 자동으로 실행되도록 설정
정리
명령어 | 설명 |
---|---|
| 현재 사용자의 크론 작업 확인 |
| 크론 작업 추가 및 수정 |
| 현재 사용자의 모든 크론 작업 삭제 |
| 크론 서비스의 로그 확인 |
| 크론 실행 로그 확인 |
| 크론 서비스 재시작 |
| 크론 서비스 자동 실행 설정 |
이번에는 CentOS 7에서 크론 작업(스케줄링)을 설정하는 방법을 정리했습니다. 다음 시리즈에서는 SELinux 관리 명령어를 다루겠습니다.
- 이전글CentOS 7 유용한 명령어 시리즈 - ⑨ SELinux 관리2025.02.01
- 다음글CentOS 7 유용한 명령어 시리즈 - ⑦ 로그 확인 및 모니터링2025.02.01
댓글목록
등록된 댓글이 없습니다.