티스토리 뷰

💼 정보 ver1.0

crontab 사용법

James Wetzel 2009. 12. 7. 17:40
이름
       crontab - 사용자의 개별 crontab 파일 관리

사용법
       crontab [ -u 사용자ID ] 파일
       crontab [ -u 사용자ID ] { -l | -r | -e }

설명
       crontab 명령은 Vixie Cron 패키지에 있는 cron(8) 데몬을 사용해서 목록들을 설치(지정), 삭제, 또는 목록보기 등을할
       수 있는 풀그림이다.  각 사용자는 자신의 crontab 파일을 가질 수 있고, 이 파일들은 /var 디렉토리 안에 있게 된 다.
       하지만, 그 파일을 직접 편집할 수는 없다.

       /etc/cron.allow   파일이 있으면, 그 파일 안에 자신의 ID가 있어야 이 명령을 사용할 수 있으며, allow 파일이 없고,
       /etc/cron.deny 파일이 있으면, 그 파일 안에 자신의 ID가 없어야 이 명령을 사용할 수 있다.  이 두 파일이 없 다 면,
       site-dependent(?) 환경설정 인자에 따라, 시스템 관리자만 사용할 수 있거나, 아니면, 모든 사용자가 이 명령을사용할
       수 있다.

       -u 옵션이 사용되면, 그 옵션의 인자로 지정된 사용자의 crontab 파일이사용되며, 이 옵션을 사용하지 않으면, 자신 의
       crontab  파일이 사용된다.  su(8) 명령이 사용될 경우에는 -u 옵션 없이 이 명령을 사용하면, crontab 파일 선택에 혼
       돈이 있을 수 있다. 그러므로, su(8) 명령을 사용하고 있을 때는, 항상 -u 옵션을 사용하는 것이 안전하다.

       이 명령의 가장 기본적인 사용방법은 crontab 파일로 쓰일 파일 이름을 명령행 인자로 사용해서, 그것을 설치(지정) 하
       는  것이며, 이때, 파일 이름이 지정되지 않으면, 표준 입력이나, 파이프를동한 이전 명령의 출력을 그 입력으로 한다.

       -l 옵션은 현재 crontab 내용을 표준 출력으로 보여준다.

       -r 옵션은 현재 crontab 내용을 지운다.

       -e 옵션은 VISUAL 또는 EDITOR 환경 변수에 지정된편집기로 현재 crontab 내용을 편집한다.  편집을 해서, 저장하고 끝
       내면, 그 바뀐 crontab 내용이 자동으로갱신된다.

관련 항목
       crontab(5), cron(8)
       crontab(5), cron(8)

파일
       /etc/cron.allow
       /etc/cron.deny

표준
       crontab  명령은 IEEE Std1003.2-1992 (‘‘POSIX’’) 기준과 일치한다.  이 새로은 문법은옛날 SVR3 문법을 따르는 Vixie
       Cron 이전의 버전의 것과 차이가 있다.

검사
       명령행 사용법이 틀릴 경우에는 그 사용법을 비교적 자세히 알려주는 메시지가나타난다. 그것을 참조하도록.

crontab?

예약된 작업을 실행하는 파일

예약된 작업 리스트
]#/usr/bin/crontab -l

작업 예약 입력,수정,삭제
]#/usr/bin/crontab -e

예약된 작업 리스트 비움
]#/usr/bin/crontab -r

작업 입력 형식
[분] [시] [일] [월] [요일] [실행명령] [>|>>출력지정] (tab 또는 스페이스로 구분)

ex]
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파일에 추가한다)

*       *       *       *       *      mysqlbackup.sh
(매 분)


[PHP 파일 Crontab 설정]
** * * * wget http://www.xxx.com/aa.php

(웹파일 PHP파일실행)

* * * * * /usr/local/bin/php -e /home/aa.php
(로컬 PHP파일실행, php=>php바이너리 파일을 의미)
TIP
Crontab에서 PHP를 실행 할때 PHP소스 상의 include경로는 물리적인 경로로 입력해 준다.
ex)require("/home/nalsee/nalsee/include/common.html");    

crontab 실행 확인

]#cat /var/log/cron

crontab 시작 및 중지

]#/etc/rc.d/init.d/crond start{restart | stop}

[비고]

]#/etc/cron.allow : 허용할 사용자 ID 목록
]#/etc/cron.deny  : 거부할 사용자 ID 목록

crontab을 저장하게 되면 "/var/spool/cron" 디렉토리에 사용자 별로 파일이 생성된다.

서버이전시 해당 파일을 복사해서 사용해되 된다.


[실습]

1. crontab 데몬 확인

]# ps -ef | grep crond

2. Test Shell 파일 작성
]# vi crontab_test.sh
#!/bin/sh
echo "Crontab Testing..."
"/home"에 저장

3. Crontab 등록
]# /usr/bin/crontab -e
* * * * * /home/crontab_test.sh >> /home/cron_log
(매 1일 crontab_test.sh을 실행하고 결과를 /home/cron_log에 저장한다.(로그 파일이 없을 경우 자동생성됨)

4. 실행 결과 확인
]#vi /home/cron_log
cron_log에 "Crontab Testing..."문자가 기록되어 있으면 Crontab 실행이 정상적이라는 것을 확인 할 수 있다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함