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이란 :
일정시간 마다 시스템에서 자동으로 실행 시키는 데몬입니다.
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
실행 : /etc/rc.d/init.d/crond start
종료 : /etc/rc.d/init.d/crond stop
3. crond 설정
크론(cron)의 설정은 /etc/crontab에서 합니다.
크론(cron)의 설정은 /etc/crontab에서 합니다.
옵션
-e : 설정된 파일을 새롭게 편집
-d : 등록된 내용을 삭제
-l : 현재 등록된 내용을 본다
4. crontab 파일 형식
---------- ---------- ---------------------------------------------------
필 드 의 미 범 위
---------- ---------- ---------------------------------------------------
첫 번째 분 0-59
두 번째 시 0-23
세 번째 일 0-31
네 번째 월 1-12
다섯 번째 요일 0-7 (0 또는 7=일요일, 1=월, 2=화, ...)
여섯 번째 명령어 실행할 명령을 한줄로 쓴다.
---------- ---------- ---------------------------------------------------
---------- ---------- ---------------------------------------------------
필 드 의 미 범 위
---------- ---------- ---------------------------------------------------
첫 번째 분 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시를 의미함).
- 2-10와 같이 하이픈(-)으로 시간 범위도 지정할 수 있다.
- 2-10/3와 같이 하이픈(-)으로 시간 범위를 슬래쉬(/)로 시간 간격을 지정할 수 있다(2~10시까지 3시간 간격으로. 즉, 3, 6, 9시를 의미함).
crontab이란 예약된 작업을 실행하는 파일이다.
위치 :
위치 :
/etc/crontab
옵션 :
crontab test1.sh(test1작업을 예약)
crontab -l (현재 걸려 있는 작업 목록 표시)
crontab -r (작업목록을 비움)
crontab -e (새로운 작업 입력,수정,삭제)
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분에 작업을 수행하고 결과는 화면에 출력한다)
또는
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파일에 추가한다)
(3월~5월까지 매시간 매분에 작업을 수행하고 결과는 cms.log파일에 추가한다)
여기서 주의할 점은 예약된 명령이 하나만 받아들여 지는데 이때문에 명령을 직접 넣지 않고 shell programming을 해주는 것이다.친구의 조언에 따르면 명령 && 명령 && 명령 이런 식도 먹힌다고 한다.
cron 사용법
linux]#vi /etc/crontab
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문 실행
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);
<?
$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
linux]#chmod +x /root/home/html/update.php
이렇게 하면 지정한 시간에 php파일 실행...
php파일이 실행되었는지 볼려면
linux]#vi /var/log/cron
php파일이 실행되었는지 볼려면
linux]#vi /var/log/cron
댓글 없음:
댓글 쓰기