1. Crontab 개요
Crontab은 리눅스 및 유닉스 계열 운영체제에서 주기적인 작업을 자동으로 실행하기 위한 시스템 도구입니다.
시스템 관리자와 개발자들에게 매우 유용한 스케줄링 도구로, 반복적이고 예약된 작업을 손쉽게 관리할 수 있게 해줍니다.
2. Crontab의 기본 구조
Crontab 항목은 다음과 같은 6개의 필드로 구성됩니다:
* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └─── 요일 (0 - 7) (일요일은 0과 7 모두 가능)
│ │ │ └──── 월 (1 - 12)
│ │ └───── 일 (1 - 31)
│ └────── 시간 (0 - 23)
└─────── 분 (0 - 59)
와일드카드 및 특수 문자 사용법
*
: 모든 값,
: 여러 값 지정-
: 범위 지정/
: 간격 지정
3. Crontab 사용 방법
3.1 Crontab 확인
# 현재 사용자의 크론탭 목록 확인
crontab -l
3.2 Crontab 편집
# 크론탭 편집
crontab -e
4. 다양한 주기별 Crontab 예시
4.1 매분 실행
* * * * * /path/to/script.sh
4.2 매시간 실행
0 * * * * /path/to/hourly_script.sh
4.3 매일 자정에 실행
0 0 * * * /path/to/daily_backup.sh
4.4 평일 매일 실행
0 9 * * 1-5 /path/to/weekday_script.sh
4.5 매월 마지막 날 실행
0 0 28-31 * * test $(date -d '+1 day' +\%d) -eq 1 && /path/to/monthly_script.sh
5. 주석 추가하기
Crontab 파일에 주석을 추가하여 가독성을 높일 수 있습니다:
# 매일 자정 데이터베이스 백업
0 0 * * * /usr/local/bin/backup_database.sh
# 매주 일요일 시스템 청소
0 0 * * 0 /usr/local/bin/system_cleanup.sh
6. 로깅 방법
6.1 표준 출력 및 오류 로깅
* * * * * /path/to/script.sh >> /var/log/mycron.log 2>&1
6.2 크론 로그 확인
# 시스템 크론 로그 확인
sudo tail -f /var/log/syslog | grep CRON
7. Crontab 백업 방법
7.1 전체 사용자 크론탭 백업
# 모든 사용자의 크론탭 백업
for user in $(cut -f1 -d: /etc/passwd); do
crontab -u $user -l > /backup/crontab_$user.bak 2>/dev/null;
done
7.2 개인 크론탭 백업
# 현재 사용자 크론탭 백업
crontab -l > ~/crontab_backup.txt
8. 주의사항
- 절대 경로 사용을 권장합니다.
- 스크립트에 실행 권한을 부여해야 합니다.
- 환경 변수가 다를 수 있으므로 전체 경로 사용을 추천합니다.
맺음말
Crontab은 강력하고 유연한 작업 스케줄링 도구입니다. 시스템 관리와 자동화의 핵심 요소로, 올바르게 사용하면 시간과 노력을 크게 절약할 수 있습니다.
728x90
반응형
'Linux,Unix,BSD' 카테고리의 다른 글
[라즈베리파이] 라즈비안 설치 후 해야 할 작업 정리 (0) | 2021.07.28 |
---|---|
HAProxy-2.4.2 설치하기 on CentOS8 (0) | 2021.07.12 |
[linux] Bash에서 문자열 자르기 (substring, split) (0) | 2021.06.02 |
[shell] root 권한으로 pipe 처리하기 (파일에 내용 추가하기) (0) | 2021.05.25 |
[linux] curl을 이용한 Basic 인증하기 (0) | 2021.05.09 |