- cron
-> 일정시간 마다 시스템에서 자동으로 실행 시키는 데몬 (Windows 의 작업스케줄러와 비슷한 기능)
-> 정기적 작업을 할때 많이 사용 (백업작업 등)
-> cron 을 사용할때 crontab 이라는 명령을 이용해서 실행한다. (/etc/crontab)
-> 각각의 사용자가 등록한 crontab은 /var/spool/cron/[사용자명] 에 저장된다.
- cron 데몬의 시작 과 종료
-> /etc/rc.d/init.d/crond [start/restart/stop]
- crontab
-> 지정된 시간에 다른 프로그램을 실행하면서 연속적으로 실행하는 프로그램
-> 유사한 명령으로는 at 명령어가 있다.
* crontab 와 at 명령의 차이점
-> crontab 명령은 일정한 간격으로 계속해서 명령을 실행한다. 하지만 at 명령은 지정된 명령을 한번밖에 수행하지 않는다.
- crontab 옵션
-l : 현재 crontab 에 의해 설정된 내용을 출력
-e : crontab 의 내용을 작성하거나 수정
-r : crontab의 내용을 삭제
-u : root 권한자가 해당사용자의 crontab 파일을 다룰때 사용
ex)
① 작업 목록을 볼때
-> crontab -l
② root 권한자가 churu 사용자의 crontab 을 작성하거나 수정할때
-> crontab -e -u churu
③ aaa 란 파일을 crontab 으로 사용할때
-> crontab aaa (여기서 aaa 파일은 crontab 형식에 맞게 입력되어 있어야 한다.)
④ crontab 내용을 삭제할때
-> crontab -r
- crontab 의 작업형식
-> [MM] [HH] [DD] [mm] [d] [command]
-> MM : 분을 의미 (0 ~ 59 까지 사용)
-> HH : 시를 의미 (0 ~ 23 까지 사용)
-> DD : 날짜를 의미 (1 ~ 31 까지 사용)
-> mm : 달을 의미 (1 ~ 12 까지 사용)
-> d : 요일을 의미 (0 ~ 7 까지 사용, 0 과 7은 일요일을 나타냄)
-> command : 실행할 명령
* 구분자는 space 로 한다.
* 위 형식에서 시간을 나타내는 각 필드에서는 와일드 카드 '*' 를 사용할 수 있고,
각각의 요일을 구분할 때는 ',' 를 사용하고
연일을 나타낼때는 '-' 를 사용한다.
즉 월요일과 수요일은 '1,3' 월요일 부터 금요일까지는 '1-5' 로 표시할 수 있다.
ex)
① 월요일부터 금요일까지 /tmp/start 라는 스크립트를 실행시키고 싶을때.
-> 0 12 * * 1-5 /tmp/start (0분
② 1월부터 10월까지 2개월마다 /tmp/babo 라는 스크립트를 실행시키고 싶을때.
-> 0 12 1 1-10/2 * /tmp/babo (0분
* /2 는 2달마다 라는 표시. 만약 5일 마다 작업을 수행시키고 싶은면 0 1 /5 * * [명령] 을 하면 된다. (5일마다
③ 월,수,금
-> 0 4 * * 1,3,5 /tmp/haha (0분
- cron 사용자 제한
-> /etc/cron.allow (허가목록) 과 /etc/cron.deny (거부목록)을 참조하게 된다.
-> /etc/cron.allow 만 존재하는 경우 : cron.allow 파일에 등록된 사용자만 사용가능하다.
-> /etc/cron.deny 만 존재하는 경우 : 기본적으로 모든 사용자가 사용가능하고 cron.deny에 등록된 사용자만 사용불가능하다.
-> 두 파일이 모두 없을 경우 : 모든 사용자가 가능하다
-> 두 파일이 모두 있을 경우 : cron.deny 내용을 무시하고 cron.allow 파일에 등록된 사용자만 사용가능하다.
참조 : http://blog.naver.com/hellowkorea?Redirect=Log&logNo=50000650294
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받고 있습니다.
이 포스팅은 제휴마케팅이 적용되어 작성자에게 일정액의 커미션이 제공될수 있습니다.
이 글을 공유하기