os/Linux

crontab 사용

C/H 2007. 3. 17. 21:08

스케줄작성

crontab [ -e | -l | -r | -v | File ]

-e : 수정
-l : 내용보기
-r : 삭제
-v : 작업상태보기

>crontab -e
#주석
15 3 * * *      /home/koglo.com/public_html/system/autoftp.sh              >       /dev/null 2>&1

minute(분) hour(시) day_of_month(일) month(월) weekday(요일) command(명령)

minute(분) 0 - 59
hour(시) 0 - 23
day_of_month(일) 1 - 31
month(월) 1 - 12
weekday(요일) 일요일부터 금요일까지를 나타내는 0 - 6
command(명령) 쉘 명령

> /dev/null 표준출력내용을 null로보낸다

명령 지정
cron 디먼은 선택된 날짜와 시간의 여섯 번째 필드에 지정된 명령을 수행합니다. 여섯 번째 필드에 %(퍼센트 기호)를 포함하면, cron 디먼은 그 앞에 오는 모든 것을 명령 호출로서 취급하고, 퍼센트 기호(\%)를 탈출하지 않는 한 그 뒤에 오는 모든 것을 표준 입력에 사용 가능하게 만듭니다. 공백 행과 첫번째 비공백 문자가 번호 기호(#)인 행을 무시됩니다.


예제
mycronjobs이라는 파일을 /var/admn/cron/crontabs 디렉토리에 복사하려면, 다음과 같이 입력하십시오.
crontab mycronjobs
매 시간마다 콘솔에 시간을 기록하려면, 다음과 같이 입력하십시오.
0 * * * * echo The hour is `date` . >/dev/console
모든 월요일, 수요일 및 금요일 오전 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
30 6 * * 1,3,5 /usr/bin/calendar
일년 내내 매일 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
30 6 * * * /usr/bin/calendar
8월 동안 매일 자정에 maintenance라는 스크립트를 수행하려면, 다음과 같이 입력하십시오.
0 0 * 8 * /u/harry/bin/maintenance
명령에 대한 표준 입력에 대해 텍스트를 정의하려면, 다음과 같이 입력하십시오.
0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to turn in your time card.
%(퍼센트 기호) 뒤에 오는 텍스트가 다음과 같이 wall 명령에 대한 표준 입력을 정의합니다.
HAPPY HOLIDAY! Remember to turn in your time card.
파일
/var/adm/cron/FIFO crontab 또는 at 명령으로 새 작업이 제출될 때 cron 디먼으로 메세지를 전송하는 명명된 파이프.
/var/spool/cron/crontabs crontab 스풀 영역을 지정합니다.
/var/adm/cron/cron.allow  crontab 명령에 대한 액세스가 허용되는 사용자 리스트를 지정합니다.
/var/adm/cron/cron.deny crontab 명령에 대한 액세스가 거부되는 사용자 리스트를 지정합니다

0,30 * 1,15 * 1-5 fsck -y
상기의 예에서 보면 매달 1일과 15일날 30분마다 요일에 관계없이 fsck -y명령을
실행하도록 되어 있다.(위의 예는 있을 수 없는 상황이겠지만 예로 들어본다.)
이러한 방식으로 명령어필드에 여러가지의 내용을 넣을 수 있다.

20 1 * * * root find /tmp -atime +3 -exec rm -f () ';'
매일 새벽 1시 20분에 3일간 접근하지 않은 /tmp내의 파일을 삭제하는 내용
0 4 * * * root find / -xdev -name core +7 -exec rm -f {}';'
매일 새벽 4시 정각에 지난 일주일간 접근하지 않은 core파일들을 삭제한다.
-xdev옵션은 독립형시스템이면 사용하지 않아도 된다.

수정하는 방법은 리눅스의 경우에는 crontab -e명령으로 에디팅을 할 수 있다.
수정하기 전에 지금 등록된 crontab을 보고자 하면 -l옵션을 사용하고 등록된
내용을 삭제하려면 -d옵션을 사용하면 된다.(-r옵션을 사용하는 유닉스도 있다.)
실행결과는 메일로 알려주게 되므로 자신의 메일을 읽어보면 된다.

crontab을 직접 고칠 수 없는 상황이면 crontab을 -l옵션을 사용하여 새로운
화일명으로 리다이렉션 받아서 편집한 뒤에 crontab filename의 형태로 등록하면
된다.
리눅스의 경우에는 /var/spool/cron/crontabs/에 자신의 계정을 화일명으로
crontab이 존재하고 있다.
이를 수정하여 자신에게 맞추거나 또는 새롭게 생성하

 

반응형

'os > Linux' 카테고리의 다른 글

ftp 파일수신 쉘적용  (0) 2007.03.19
ftp text모드 사용법  (0) 2007.03.19
ncftp 사용  (0) 2007.03.17
안녕 AnNyung 1.2 R3 Linux Server  (0) 2006.11.02
포트(ports)  (0) 2006.09.22