crontab 설정

필요할때마다 검색하기 구찮아서 정리해 둠

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옵션을 사용하는 유닉스도 있다.) 
실행결과는 메일로 알려주게 되므로 자신의 메일을 읽어보면 된다.
CRON 메일 전송 차단을 원하면
MAILTO=""

crontab을 직접 고칠 수 없는 상황이면 crontab을 -l옵션을 사용하여 새로운 화일명으로 리다이렉션 받아서 편집한 뒤에 crontab filename의 형태로 등록하면 된다. 
리눅스의 경우에는 /var/spool/cron/crontabs/에 자신의 계정을 화일명으로 crontab이 존재하고 있다.
2015/10/23 09:37 2015/10/23 09:37
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다