Crontab이란 유닉스, 리눅스, 맥 OS 등의 운영 체제에서 사용되는 작업 예약 프로그램입니다.
해당 기능을 사용하여 일정 시간마다 실행될 커맨드나 스크립트를 정의할 수 있습니다.
저는 Crontab을 AWS EC2에 등록한 백엔드 서버에서 저장한 로그기록을 매일 AWS S3에 저장하거나 매일 업데이트 된 ML 모델을 AWS S3로부터 다운로드하는데 해당 기능을 사용하였습니다.
사용법
- -e 옵션 : edit user's crontab
- -l 옵션 : list user's crontab
- -r 옵션 : delete user's crontab
- -i prompt before deleting user's crontab
- -s selinux context
* * * * * 실행명령어
각 별표별로 min(0~59), hour(0~23), day of month(1~31), month(1~12), day of week(0~6 <-0 = 월 6 = 일)이다.
아래 예시를 보며 이해해 보자.
crontab -e
아래 예제는 매일 08시 21분에 sh /app/modelUpdate.sh 명령어를 실행해라 라는 예시이다.
min을 21, hour를 08로 두고, 나머지 값을 *로 처리함으로써(*는 리눅스에서 모든 것을 의미한다) 매일 실행될 수 있는 명령어를 넣어주었다.
crontab -e로 파일 수정 후 서비스를 재시작해줘야 함
- service cron restart
crontab 상태 확인
- servicce cron status
이슈들
- 사용하면서 가장 많이 발생했던 오류는 권한 오류였습니다.
- 저의 경우 해결방법을 찾지 못해 결국 작업 폴더를 / 밑으로 이동시켰고, 모든 명령어를 sudo 권한으로 실행한 결과 정상 작동하게 되었습니다.
'빅데이터 관리 > 리눅스' 카테고리의 다른 글
리눅스 기초 - 2 (1) | 2023.05.02 |
---|---|
리눅스 기초 (1) | 2023.04.21 |
윈도우 리눅스 설치 (0) | 2023.04.21 |