2012-08-29

crontab 사용법







Crontab
cron등록하는 방법 순서대로 하면 됩니다.
1.whereis php 명령어로 php가 있는 곳의 위치를 확인한다.
2.crontab -e 명령어로 작업을 추가한다.
예)*/5 * * * * /usr/bin/php -q /var/www/html/test.php
5분마다 php를 이용해서 해당 위치의 파일을 실행시키는 거다.
3.test.php의 소스안에서는 include파일같은것은 실제 경로를 써준다.
4./etc/rc.d/init.d/crond restart
5.crontab -l 명령어로 제대로 등록이 되었는지 살펴본다.
6.tail /var/log/cron 명령어로 5분마다 제대로 실행이 되었는지 로그를 검사한다.

___________________________________________________________________________________________
 1. cron이란 :
   일정시간 마다 시스템에서 자동으로 실행 시키는 데몬입니다.
 2. cron 데몬의 실행과 종료
   실행 : /etc/rc.d/init.d/crond start
   종료 : /etc/rc.d/init.d/crond stop
 3. crond 설정
  크론(cron)의 설정은 /etc/crontab에서 합니다.
  옵션
  -e : 설정된 파일을 새롭게 편집
  -d : 등록된 내용을 삭제
  -l  : 현재 등록된 내용을 본다
  4. crontab 파일 형식
 ----------    ----------  ---------------------------------------------------
  필  드                 의  미           범  위
 ----------    ----------  ---------------------------------------------------
 첫 번째                      분              0-59
 두 번째                      시              0-23
 세 번째                      일              0-31
 네 번째                      월              1-12
 다섯 번째                  요일             0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
 여섯 번째                명령어             실행할 명령을 한줄로 쓴다.
 ----------    ----------  ---------------------------------------------------
 
 - 모든 엔트리 필드는 공백으로 구분된다.
 - 한 줄당 하나의 명령 (두줄로 나눠서 표시할 수 없음)
 - # 으로 시작하는 줄은 실행하지 않는다.
 - '*'표시는 해당 필드의 모든 시간을 의미한다. - 3,5,7와 같이 콤마(,)로 구분하여 여러 시간대를 지정할 수 있다.
 - 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
 - 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).
crontab이란 예약된 작업을 실행하는 파일이다.
위치 :
/etc/crontab

옵션 :
crontab test1.sh(test1작업을 예약)
crontab -l (현재 걸려 있는 작업 목록 표시)
crontab -r (작업목록을 비움)
crontab -e (새로운 작업 입력,수정,삭제)
그럼 이제 등록할 파일에 대해 알아보자. 일반적으로 shell프로그래밍 한 파일을 넣으면 된다.
형식 :
[분] [시] [일] [월] [요일] [실행명령] [>|>>출력지정]
*/30 * * * * /usr/local/apache/htdocs2/start_cms2.sh > /dev/null
또는
30 * * * * /usr/local/apache/htdocs2/start_cms2.sh
(매 시간 30분마다 작업을 수행하고 결과는 출력하지 않는다)

45 */3 * * 1-5 /usr/local/apache/htdocs2/tart_cms.sh > /dev/console
(월~금요일 매 3시간 45분에 작업을 수행하고 결과는 화면에 출력한다)

* * * 3-5 * /usr/local/apache/htdocs2/tart_cms.sh >> /usr/local/apache/htdocs2/cms.log
(3월~5월까지 매시간 매분에 작업을 수행하고 결과는 cms.log파일에 추가한다)
여기서 주의할 점은 예약된 명령이 하나만 받아들여 지는데 이때문에 명령을 직접 넣지 않고 shell programming을 해주는 것이다.친구의 조언에 따르면 명령 && 명령 && 명령 이런 식도 먹힌다고 한다.

cron 사용법
linux]#vi /etc/crontab
분 시 날짜 달 요일 권한 command 형식으로 입력해줌...
ex) 05 * * * * root /home/html/update.php   -> 매시 5분에 update.php문 실행
ex) 05 15 * * * root /home/html/update.php   -> 매일 오후 3시 5분에 update.php문 실행
update.php
#!/usr/bin/php -q   (이건 리눅스에서 whereis php 해서 나오는 경로를 적어준다.) 
<?
 $conn=mysql_connect("localhost","user","password");
 mysql_select_db("edumeca",$conn);
 mysql_query("update tablename set updatefield=updatefield+1");
?>
update.php 의 실행권한을 준다.
linux]#chmod +x /root/home/html/update.php
이렇게 하면 지정한 시간에 php파일 실행...
php파일이 실행되었는지 볼려면

linux]#vi /var/log/cron

댓글 없음:

댓글 쓰기