hippo 데브옵스
2022. 7. 23. 15:28
2022. 7. 23. 15:28
작업 예약 스케줄러 파일인 cron
- 특정한 시간에 또는 특정 시간마다 어떤 작업을 자동으로 수행하게 해주고 싶을 때 사용하는 명령어
- cron은 특정한 시간에 특정한 작업을 수행하게 해주는 스케줄링 역할
1. 시스템 크론(system cron)
- cron 시스템에는 시스템에서 기본적으로 사용하는 cron 설정
- 시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab에 등록해서 주기적으로 수행 가능
2. 사용자 크론(user cron)
- root나 일반 사용자가 자신의 cron 설정을 직접하여 사용
- 사용자는 crontab이라는 명령을 수행해서 등록
cron과 관련된 여러 파일들
1. cron
- /usr/sbin/cron → 크론 데몬 파일
2. crontab
- cron 작업을 설정하는 파일 → crontab 파일
- cron 프로세스는 /etc/crontab 파일에 설정된 값을 읽어서 수행
- crontab 파일은 OS에 따라 저장되는 위치가 다를 수 있음
- crontab의 파일 내용
- m h dom mon dow user command
- 분 시 일 월 요일 사용자 실행명령 → crontab의 형식
- *의 의미는 every
- 25 6 * * * root test -x /usr/sbin/anacron ~
- 6시 26분마다 root 사용자가 test -x /usr/sbin/anacron ~ 명령 실행
3. /usr/sbin/anacron
- cron과 비슷한 동작을 할 수 있게하는 프로그램
- 서버가 일정 시간 중지되었을 때에도 작업이 실행되는 것을 보장하기 위해 사용하는 도구
4. /etc/cron.daily, /etc/cron.hourly, /etc/cron.weekly, /etc/cron.monthly
- 시스템 크론 설정 디렉토리
- cron은 주기적으로 실행할 내용을 시스템 크론 설정 디렉토리에 넣어 놓고 작동
5. /var/log/cron
6. /etc/cron.allow, /etc/cron.deny
- 크론 접근을 허용할 ID, 크론 접근을 허용하지 않을 ID 등을 설정
cron 동작 방식, cron 실행 흐름
- cron 동작 방식을 보면 cron 데몬(crond)가 crontab을 참조
- cron 데몬은 어떤 task를 언제 어떻게 수행할 지를 crontab에서 찾아서 실행
- cron 데몬은 시스템 스케줄러 정보 뿐만 아니라 각각 사용자가 설정한 작업 예약 정보도 crontab에서 확인
- cron 파일이 데몬이기 때문에 부팅시 백그라운드로 실행
$ ps -ef | grep cron
crontab 설정 형식(crontab 파일의 7 필드)
- m h dom mon dow user command 설명
crontab 설정 값에 사용할 기호
1. * (별표)
- 각 필드 자리에 * 기호가 오면 해당 필드의 모든 값을 의미
- 두 번째 필드에 *가 오면 매 시간 마다
- 세 번째 필드에 *가 오면 매일
- 네 번째 필드에 *가 오면 매월
2. - (하이픈)
- 그 사이의 모든값을 의미
- 세 번째 필드에 '1-5' 값이 오면 1일, 2일, 3일, 4일, 5일 의미
3. , (쉼표)
- 지정한 모든 값을 의미
- 불규칙적인 값 지정할 때 주로 사용
- 두 번째 필드에서 "1,3,4"는 1시, 3시, 4시를 의미
4. / (슬래시)
- 연결된 설정 값 범위에서 특정 주기로 나눌 때 사용