crontab 설정
필요할때마다 검색하기 구찮아서 정리해 둠
>crontab -e #주석 15 3 * * * /home/koglo.com/public_html/system/autoftp.sh > /dev/null 2>&1
> /dev/null 표준출력내용을 null로보낸다
예제
매 시간마다 콘솔에 시간을 기록하려면, 다음과 같이 입력하십시오.
모든 월요일, 수요일 및 금요일 오전 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
일년 내내 매일 6시 30분에 calendar 명령을 수행하려면, 다음과 같이 입력하십시오.
8월 동안 매일 자정에 maintenance라는 스크립트를 수행하려면, 다음과 같이 입력하십시오.
명령에 대한 표준 입력에 대해 텍스트를 정의하려면, 다음과 같이 입력하십시오.
%(퍼센트 기호) 뒤에 오는 텍스트가 다음과 같이 wall 명령에 대한 표준 입력을 정의합니다.
0,30 * 1,15 * 1-5 fsck -y
20 1 * * * root find /tmp -atime +3 -exec rm -f () ';'
0 4 * * * root find / -xdev -name core +7 -exec rm -f {}';'
수정하는 방법은 리눅스의 경우에는 crontab -e명령으로 에디팅을 할 수 있다.
crontab을 직접 고칠 수 없는 상황이면 crontab을 -l옵션을 사용하여 새로운 화일명으로 리다이렉션 받아서 편집한 뒤에 crontab filename의 형태로 등록하면 된다.
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이 존재하고 있다.
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다