리눅스에는 작업 스케줄링이 아닌 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
[출처] [Linux] cron (리눅스 배치)|작성자 공대하회탈
'리눅스' 카테고리의 다른 글
서버용량 확인 (0) | 2016.06.21 |
---|---|
[error]Received fatal alert: handshake_failure through SSLHandshakeException (0) | 2016.01.11 |
java 버전 관리하기(alternatives) (0) | 2016.01.11 |
java 버전 업데이트하기 (0) | 2016.01.11 |
[펌]tomcat-cach-control (0) | 2015.10.05 |