먼저 프로세스에 대한 개념은 아래 참고 포스팅을 확인해보고 본 포스팅을 읽어보는것을 추천한다.
리눅스에서 말하는 스케줄링이란 특정한 시간에 특정한 작업을 수행하게 하는것으로 리눅스에서는 at 과 cron을 사용한다.
둘다 모두 데몬으로 실행 중에 있어야하고 대부분의 리눅스에서는 atd 및 crond라 하여 기본적으로 동작하고 있다.
at은 주로 한번만 실행해야할때 사용을 하고 cron은 주기적으로 프로세스를 실행할때 사용한다.
at
작업은 큐에 저장이 되고 저장된 작업들은 /var/spool/at 디렉터리에 파일로 저장이 된다.
명령은 기본적으로 표준 입력 장치를 통해 받으며 원하는 명령을 순차적으로 입력한 후에 ctrl+d를 누르면 해당 작업이 예약이 된다.
cron
시스템 운영에 필요한 작업은 root 권한으로 /etc/crontab 에 등록해서 주기적으로 수행을 하고 사용자는 crontab이라는 명령을 수행해서 등록할수 있다.
총 7개의 필드로 구성이 되어있는데
min hour day_of_month month day_of_week user-name command
crontab을 등록할때 해당 위치에 알맞는 값과 command를 입력해주면 해당 시간에 해당 명령이 동작을 한다.
- min > 0-59
- hour > 0-23
- day_of_month > 1-31
- month > 1-12
- day_of_week > 0-7 (0,7 일요일, 1월 ,2화, 3수, 4목, 5금, 6토)
--------------------------------------------------------------------------------
예)
# more /var/spool/cron/crontabs/root
# minute hour day month week
# 0~59 0~23 1~31 1~12 0~6 (0=sunday, 1=monday)
#
15,45 3 * * * find / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
5 9 * * 6 /usr/lib/newsyslog >/dev/null 2>&1
15 0,8 16 * * find /var/preserve/ -mtime +7 -a -exec rm -f {} \;
--------------------------------------------------------------------------------
crontab 화일의 맨 앞의 5번째 칼럼까지에는 각 명령이 수행되어질 일시와 요일이다.
지정한 것들은 아래와 같은 의미를 갖는다.
분 시간 날짜 달 요일 : 구분은 Space
15,45 3 * * * : 매일 3시 15분관 45분에 수행
5 9 * * 6 : 매주 금요일 9시 5분에 수행
15 1,18 16 * * : 매달 16일 1시15분과 오후 6시 15분에 수행
참고 포스팅
https://thenicesj.tistory.com/157
'IT > Linux' 카테고리의 다른 글
리눅스에서 사용하는 압축 종류 (43) | 2022.06.02 |
---|---|
리눅스에서 패키지 관리 (38) | 2022.06.01 |
리눅스 프로세스 관련 명령어 (35) | 2022.05.29 |
리눅스 텍스트 파일 관련 명령어 (33) | 2022.05.28 |
리눅스 디렉터리 / 파일 관련 명령어 (34) | 2022.05.27 |
댓글