서버 관리에 있어 특히 리눅스에서 Crontab은 반드시 알아야 하는 개념입니다.
Crontab은 스케줄링을 관리하는 프로그램으로써 시스템 관리자에게 매우 중요한 유틸입니다.
특정 시간대에 사용자가 작성한 스크립트나 명령을 실행하며 rsync 같은 툴을 같이 사용하여
굉장히 편리한 백업 시스템을 만들 수도 있고 데이터 베이스 관리나 기타 반복적인 업무를 등록하여 사용합니다.
즉 반복적인 작업을 정의하여 실행해주는 자동 매크로라고 생각하시면 됩니다.
먼저 Crontab은 기본 쉘에서 해당 명령들이 존재합니다.
crontab -l
예약된 작업 리스트 출력
crontab -e
예약된 작업 리스트 수정
crontab -r
예약된 작업 리스트 목록 삭제
여기에서 작업 리스트는 아래와 같은 형식을 통해 구성해야 합니다.
첫번째 필드 : 분 (0~59)
두 번째 필드 : 시 (0~23)
세 번째 필드 : 일 (0~31)
네 번째 필드 : 월 (1~12)
다섯 번째 필드 : 요일 (0~7)
0,7 = 일요일
1 = 월요일...
여섯 번째 필드 : 실행할 명령
예를 들어 crontab -e 를통해 작성을 해보도록 하겠습니다.
새벽 3시 20분 매주 일요일마다 실행을 하는 구문을 작성하면 아래와 같습니다.
20 3 * * 0 /home/test.sh
여기에서 *표시는 매시간대를 의미합니다 즉 시간 필드에 *이 들어가면 매시간이라는 뜻입니다.
자 두 번째로 3시간 30분마다 실행하는 crontab을 작성하면 아래와 같습니다.
30 */3 * * * /home/test.sh
위 항목에서 */3 은 매시간이지만 3시간이라는 뜻으로 3시간마다 반복이라는 의미와 같습니다.
시간 설정 관련 필수적으로 알아야 하는 내용들을 숙지해야 합니다.
1. *표시는 해당 필드의 모든 시간을 의미합니다.
2. 3,5,7 같이 콤마로 구분하여 여러 시간대를 지정할 수 있습니다.
3. 2-10과 같이 하이픈으로 시간 범위를 지정할 수 있습니다.
4. 2-10/3과 같이 하이픈으로 시간 범위를, 슬래쉬로 시간 간격을 지정할 수 있습니다.
마지막으로 crontab은 crontab -e를 통해 실행한 뒤에 재시작해주어야 적용됩니다.
systemctl restart crond.service를 통해 재시작해주도록 합니다.
당연히 크론탭이 실행되는지 확인해주는 것도 잊으시면 안 됩니다.
'서버 > 리눅스' 카테고리의 다른 글
[Linux] Directory file count (0) | 2021.12.28 |
---|---|
[Linux] 일정 기간 지난 파일 삭제 (0) | 2021.12.28 |
[Linux] Tomcat 설치 및 구동 (0) | 2021.12.17 |
[Linux] wget certificate 에러 해결 (0) | 2021.12.16 |
[Linux] AWS ftp 파일 전송 실패 해결 (0) | 2021.12.10 |
댓글