# crontab -l 현재사용하고 있는 crontab 파일 출력
# crontab -e crontab 파일의 수정(edit)
crontab -e 로 수정이 안될경우
1. #csh 2. #setenv EDITOR vi 명령 수행후 수정함
root crontab file
/etc/cron.d/logchecker
: /var/cron/log가 최대 화일 크기를 초과하는지를 판단하고, 만약
초과하면 내용을 /var/cron/olog로 복사한다.
/usr/lib/newslog
: syslog daemon에 의해서 /var/adm 디렉토리에 생성되는 log file을 청소한다.
Controlling crontab Access
cron utility를 제어하는 두개의 file
/etc/cron.d/cron.allow
/etc/cron.d/cron.deny
User Access
- cron.allow file이 존재하면, 그 file에 적혀있는 user만이
crontab 명령어를 사용할 수있다.
- 이 file이 없으면 crontab은 cron.deny file을 체크해서 user가 crontab 실행을 금지할 지를 결정한다.
- 만약 둘다 없으면 crontab은 root만 실행시킬 수 있다.
cf) daemon, bin, smtp, nuucp, listen, nobody, noaccess file은 crontab 사용할 수 없다.
- cron.allow file은 user가 만들어 주어야한다.
- crontab 명령어는 crontab file을 수정, 삭제, 편집할 수있다.
- crontab 명령어는 user에대한 입력을 /var/ spool/cron/crontabs/username에 저장한다.
- root 만이 다른 user의 crontab file을 읽고 편집할 수있다.
- root의 crontab file은 /var/spool/cron/crontab/root 이다.
crontab file format
# cd /var/spool/cron/crontabs 에 가신후
# more root
10 3 * * 0,4 /etc/cron.d/logchecker
10 3 * * 0 /usr/lib/newsyslog
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
---------- ========================
1 2 3 4 5 program
1 : minute (0-59),
2 : hour (0-23),
3 : day of the month (1-31),
4 : month of the year (1-12),
5 : day of the week (0-6 with 0=Sunday).
이렇게 되고 실행할 파일명을 program 부분에 적어 주면 된다.
파일을 맞게 변경후 cron 데몬을 리스타트시키면 된다.
아니면..리부팅
예로
* * 1 * * /usr/local/program
이렇게 한다면 한달에 한번 매월 1일에만 program 을 실행.
지금 root 파일을 변경했는데 root 파일이 아닌 각계정의 파일을 만들어 사용하면 각유저마다 자동으로 실행할수 있다.
///////////////////////////////////////////////////////////////////////////////////////
crontab 옵션
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
-u user : user 사용자에 대해서 crontab 작업을 수행한다. 생략하면 crontab 명령을 실행하는 사용자에 대해서 crtontab 작업을 수행.
-l : 현재 cron table을 보여 줌
-r : 현재 cron table을 삭제
-e : 현재 cron table을 편집
일반적으로 crontab -e 명령을 주로 사용한다.
crontab 사용 권한 : /etc/cron.allow, /etc/cron.deny
특정 사용자에게만 cron의 사용을 허가할 경우
/etc/cron.allow 파일에 허가할 사용자만 추가해준다
/etc/cron.deny 파일에 허가하지 않을 사용자를 추가한다
/etc/cron.allow를 먼저 참조한다.
/etc/cron.allow에 명시된 사용자는 cron job을 실행할 수 있다.
/etc/cron.allow에 없는 사용자는, /etc/cron.deny에도 없다면, cron job을 실행할 수 있다.
/etc/cron.allow, /etc/cron.deny 두 파일이 존재하지 않으면 슈퍼 유저만 cron job을 수행할 수 있다.
/etc/cron.deny 파일이 존재하고 아무 내용 없이 비어 있다면, 모든 사용자가 cron job을 수행할 수 있다.
cron table의 각 필드
+-------------------------------------------------------------------+
| 분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령 |
+-------------------------------------------------------------------+
minute(0~59) hour(0-23) day(1-31) month(1-12) weekday(1-7) command
<분>은 0-59 <시>는 0-23 <날짜>는 0-31 <달>은 0-12(0또는 12는 12월, 1은 1월...) <요일>은 0-7(0과 7은 일요일, 1은 월요일...)
''*'' : everytime
''-'' : 범위 지정, 예를 들어 시간 필드에 1-3이면 1시와 3시 사이
'','' : separator, 예를 들어 시간 필드에 1,3이면 1시와 3시
/ : 시간필드 에서 23-7/2라면 23시부터 07시까지 매 2시간마다라는 의미
분필드에서 */2라면 매 2분마다라고 해석하면 된다.
사용 예
30 05 * * 1 ~/bin/backup.sh
==> 매주 월요일 오전 05시 30분에 ~/bin/backup.sh을 실행
30 2 1 * * ~/bin/backup.sh
==> 매월 1일 새벽 2시 30분에 ~/bin/backup.sh를 실행
20 1 * * * find /tmp -atime +3 -exec rm -f () '';''
==> 매일 새벽 01시 20분에 3일간 접근하지 않은 /tmp내의 파일을 삭제
==============================================================================
특정 시간에 back up을 위한 crontab 설정법
특정 시간이나 일정한 시간 간격으로 명령을 실행하거나 정해진 작업을 수행 하고자 할 경우 crontab을 이용하여 쉽게 실행할 수 있다.
시스템이 부팅될 때부터 cron daemon이 실행되며 /var/spool/cron/crontabs 디렉토리 안의 각각의 User 이름으로 저장된 crontab 파일을 읽어 온다.
cron 제어 파일
* /etc/cron.d/cron.allow - 등록된 User만 crontab 명령어를 사용함.
* /etc/cron.d/cron.deny - 등록된 User만 crontab 명령어 사용을 금함.
두 파일 모두 없으면 슈퍼유저만 crontab을 실행할 수 있다.
1. crontab 파일을 편집하기 위한 Editor를 선언한다.
work# setenv EDITOR vi
work# export EDITOR
2. crontab 명령어를 사용하여 파일에 시간과 작업을 추가한다.
( 매달 1일, 15일 21시에 tar 명령어로 /data1의 내용을 tape drive에 받음)
work# crontab -e
0 21 1,15 * * /usr/bin/tar cvf /dev/rmt/0 /data1
> > > > >__ 요일 설정 (0-일요일, 6-토요일, *-요일 무관)
> > > >______ 월(month) 설정 (1~12, *-월 무관)
> > >___________ 일(day) 설정 (1~31, *-일 무관)
> >_______________ 시간(hour) 설정 ( 0~23, *-시간 무관)
>___________________ 분(minute) 설정 (0~59, *-분 무관)
[출처] 특정 시간에 back up을 위한 crontab 설정법|작성자 명랑폐인
'OS' 카테고리의 다른 글
sendmail 계정 추가 (0) | 2014.10.08 |
---|---|
windows tomcat 장애 - iis 명령어로 중지하여 해결 (0) | 2014.10.07 |
http 상태 코드 (0) | 2014.10.02 |
윈도우 공유 폴더 삭제 및 서비스 중지 명령어 (0) | 2014.10.02 |
윈도우 폴더 강제 삭제 (0) | 2014.10.02 |