본문 바로가기

리눅스

cron (리눅스 배치)

리눅스에는 작업 스케줄링이 아닌 cron 이라는 기능이 있습니다.

 


 

 - cron이란?

 

- 유닉스, 리눅스에서 실행되는 자동 스케줄러 프로그램입니다.(윈도우 스케줄러라고 보면 될듯..)

-  지정된 시간에 특정프로그램이나 쉘스크립트파일을 자동으로 실행시키는 프로그램

 

자 그럼 이제 크론이 활성화 되어 있는지 확인해볼까요??

 

- cron 작동하고 있는지 확인해보기 

 ps -ef | grep cron

 

 

자 위의 그림을 보니 돌고 있네요. 맨 오른쪽에 crond라는게 보이면 돌고 있는거에요~~

 

그러면 start, stop, restart 방법을 알아볼까요??

 

 - cron start,stop,restart

 start : /etc/rc.d/init.d/crond start

 stop : /etc/rc.d/init.d/crond stop

 restart : /etc/rc.d/init.d/crond restart

 

 

이제 다음단계인 스케줄링 파일을 수정, 확인 초기화 하는 방법을 알아볼까요??

 

 - 스케줄링 파일 수정,확인,초기화

 수정하기 : crontab -e

 확인하기 : crontab -l

 초기화하기(주의하여야함) : crontab -r

 

 

이제부터 중요해요!! 집중!!

 

 - cron 명령어 문법

 - cron은 7개 필드가 있습니다.

- [minute] [hour] [day] [month] [weekday] [username] [command]

 * minute : 0-59 까지의 값을 입력

 * hour : 0-23까지의 값을 입력

 * day : 1-31까지의 값을 입력

 * month : 1-12까이의 값을 입력

 * weekday : 0-6까지의 값을 입력, 일요일은 0또는 7

 * username: 실행할 파일의 소유자(생략가능)

 * command: 명령어와 함께 일반적으로는 펄(*.pl), 쉘스크립트(*.sh),php(*.php)파일이 위치

 -> 이때 명령어는 반드시 절대경로로 입력하며 명령어에 의해 싱행되는 쉘 스크립트의 내부내용에는 시스템 명령어 외에는 모두 절대 경로로 입력하여야 한다.

상대경로 입력시 cron에서 정상적으로 작동 안 할 수가 있음.

 ex)

00 00 2 10 * 1 /bin/sh /usr/local/push.sh

# 매주 월요일, 매달 2일, 10일에  /usr/local/push.sh 실행

 

30 05 * * * /usr/bin/perl /usr/local/push.pl

# 매일 05시 30분에 /usr/local/push.pl 실행

 

* */1 * * * /usr/local/push

# 1시간 마다 /usr/local/push를 실행

 

* 15,17 * * * /usr/local/push

# 15시,17시에 매분마다 /usr/local/push 실행

 

 

위의 내용은 crontab -e를 하시고 실행할 글을 입력하여 주시면 되는것 입니다.

 

그럼 다음에는 crontab에 대하여 알아보겠습니다.

 

 - 정기적인 실행을 원할 경우 

vi  /etc/crontab

 

위의 파일을 참고하여 수정하여줍니다.

 

 - cron 나머지 관련 사항

 - cron 실행 로그는 /var/log/cron 에 저장됩니다.

 - cron은 예약된 스케줄 처리시 root계정이나 해당 계정에 메일을 보내주게 됩니다.

 - 위의 메일을 보내주는 과정을 생력하고 싶다면 /etc/crontab에서 MAILTo=root를 MAILTO="" 로 변경하여주면 됩니다.

 - root로 보낸 메일이 보고 싶다면 vi /var/spool/mail/root 를 입력하면 볼 수 있습니다.

 

 - cron에서 자바가 안될 때

 - PATH를 잡아주셔야 됩니다.

 - crontab -e 를 입력하고 편집하는 곳에서 PATH="자바설치경로"를 넣어줍니다.

 - 그리고 restart 하면 잘 돌꺼에요. 이걸로 고생좀 했었음..ㅠ.ㅠ


출처 | http://blog.naver.com/kangminser88/220050112192