IT/리눅스마스터1급

Crontab이란

알콩달콩아빠 2018. 1. 14. 23:25
728x90
반응형
1. 정의
  : 시스템에서 특정 시간에 어떤 작업을 반복적으로 수행하려면 cron 을, 특정 시간에 단 한번만 수행하려면 at을 사용한다. 24시간 연속적으로 켜져있지않은 시스템에서 반복적 작업을 수행하기 위해서는 anacron 을 사용한다.

2. cron
: 시스템 운영시 필요한 일상적이고 주기적인 작업을 지정된 시간에 반복적으로 수행하기 위한 목적으로 cron 을 사용한다. cron은 crond 라는 데몬으로 작동하며 리눅스를 설치할 때에도 기본적으로 작동하도록 설정되어 있다.

 1) /etc/crontab
: 시스템 운영에 필요한 주기적 작업을 필드에 적합하게 구성하여 주기적으로 해당 작업을 수행한다.

[root@mail root]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
 
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

 2) crontab 필드 구성
 분 시 일 월 <권한> <명령어>
 : crontab 파일에는 어떠한 명령어를 어느 사용자의 권한으로 어느 시간에 구동할것인가를 지정한다. 아래 예제를 보도록
하자.
 22 4 * * 0 root run-parts /etc/cron.weekly
: 매주 일요일(0) 4시 22분에 run-parts /etc/cron.weekly 명령어를 root 권한으로 실행하는 설정이다. 이 설정을 해 놓고 /etc/cron.weekly 디렉토리에 실행할 수 있는 파일을 넣어 두면 매주 일요일 4시 22분에 해당 명령어가 자동으로 실행된다.

*/1 * * * * /usr/bin/rsync -avzP -e ssh 211.43.202.A:/home/db /home/backup > /home/rsync.log
: 1분에 한번씩 cron을 수행한다.


*/5 * * * * /usr/bin/rsync -avzP -e ssh 211.43.202.A:/home/db /home/backup > /home/rsync.log
: 5분에 한번씩 cron을 수행한다.


 새로운 반복적인 작업 수행이 필요하다면 /etc/crntab 파일에 시간, 권한, 명령어 필드로 구성하여 입력하면 된다.

 3) 사용자별 crontab 설정
 : 시스템 관리 목적이 아닌 개인 사용자가 개인적인 용도로 특정 명령어 혹은 ㅡ로그램을 주기적으로 실행하려면 crontab 이라는 명령어를 사용하면 된다. crontab 명령어를 사용하여 개인 사용자도 자신에게 필요한 내용으로 crontab을 편집할 수 있다. 예를 들어 일반 사용자가 자신의 홈 디렉토리를 백업하는 것 등의 일을 주기적으로 실행할 수 있다.

 
 4) 개인사용자 crontab 편집
# crontab -e
: crontab 명령어에 옵션 -e를 사용하면 개인 사용자 crontab을 편집할 수 있다. 개인 사용자 crontab 역시 /etc/crontab과 동일한 형태의 필드로 시간, 권한, 명령어 등을 입력하면 된다.

 5) 개인 사용자 crontab 내용 확인
# crontab -l
: 일반 사용자가 자신의 crontab을 확인하려면 옵션 -l 을 사용한다.

 6) 개인 사용자 crontab 삭제
# crontab -r 
: 개인 사용자가 자신의 crontab 을 삭제하려면 crontab 편집을 이용하여 부분적으로 수정하거나 삭제할 수 있으며 모든 설정을 삭제하려면 옵션 -r 을 사용하여 crontab 자체를 삭제할 수 있다.


- 개인 사용자가 편집하는 crontab 파일은 /var/spool/cron/사용자명 형태의 파일로 저장되며, crond는 이 디렉토리에 있는 내용들을 주기적으로 실행하게 된다. 시스템 관리자는 /etc/cron.allow, /etc/cron.deny 파일 설정을 통해 crond를 이용할 사용자를 제한할 수 있다. cron.allow에 사용자명을 기록할 경우 해당 사용자만 crond를 사용할 수 있으며, cron.deny에 사용자명을 기록할 경우 해당 사용자는 crond를 사용할 수 없다. allow를 먼저 참조하며, allow에 사용자가 존재할 경우 해당 사용자만 허락하도록 설정한 경우 이므로 deny는 참조하지 않는다. 


728x90
반응형

'IT > 리눅스마스터1급' 카테고리의 다른 글

yum과 rpm  (0) 2018.01.16
nslookup / host / dig 명령어 차이  (0) 2018.01.16
anacron 이란  (0) 2018.01.14
at이란  (0) 2018.01.14
리눅스 기본 명령어  (0) 2018.01.08