티스토리 뷰

___리눅스

[리눅스] crontab

변군 변군이글루 2013. 9. 29. 00:47

 

crond

 

(1) cron 주기적으로 반복되는 일을 자동적으로 실행될 수 있도록 설정해 놓는 것

 

데몬 : cond

 

관련 파일 : /etc/crontab

 

문제1) 매월 15일 새벽 3시 1분에 "/home" 디렉토리와 그 하위 디렉토리를 /backup 디렉토리에 백업한다.

 

[root@centos4 ~]# service crond status //서비스가 실행 중인지 확인

crond (pid 3133) is running...

 

[root@centos4 ~]# vi /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
#01 * * * * root run-parts /etc/cron.hourly
#02 4 * * * root run-parts /etc/cron.daily
#22 4 * * 0 root run-parts /etc/cron.weekly
#42 4 1 * * root run-parts /etc/cron.monthly
01 3 15 * * root run-parts /etc/cron.monthly //예약

~

 

 

 

 

 

 

 

 

 

 

 

 

[root@centos4 ~]# cd /etc/cron.monthly/


[root@centos4 cron.monthly]# touch abc.sh


[root@centos4 cron.monthly]# chmod 755 abc.sh


[root@centos4 cron.monthly]# ls -l
total 8
-rwxr-xr-x 1 root root 278 Feb 22 2005 0anacron
-rwxr-xr-x 1 root root 0 Nov 14 10:56 abc.sh


[root@centos4 cron.monthly]# vi abc.sh //쉘 프로그램을 작성한다

#!/bin/sh

set $(date)
fname="backup-$2$3.tar.gz"

tar cfz /backup/$fname /home
~

 

 

 

 

 

 

[root@centos4 cron.monthly]# mkdir /backup //백업 폴더 생성

[root@centos4 cron.monthly]# service crond restart
Stopping crond: [ OK ]
Starting crond: [ OK ]

 

[root@centos4 cron.monthly]#
//15일 03시 01분에 백업파일이 생성되었다

 

[root@centos4 cron.monthly]# ls -l /backup/
total 4
-rw-r--r-- 1 root root 108 Jan 15 03:01 backup-Jan15.tar.gz

 

crontab 설치

 

$ su - scbyun

 

$ crontab -e

You (scbyun) are not allowed to use this program (crontab)

See crontab(1) for more information

 

cron 사용자 제한

1. /etc/cron.deny 만 존재하는경우

 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만 사용불가능.

 

# cat /etc/cron.deny

 

2. /etc/cron.allow 만 존재하는 경우

cron.allow 파일에 등록된 사용자만 사용가능.

 

# cat /etc/cron.allow

scbyun


[root@centos4 cron.monthly]#

 

 

 

'___리눅스' 카테고리의 다른 글

[리눅스] error ncurses libraries  (0) 2013.09.29
[리눅스] tar 명령어  (0) 2013.09.29
[리눅스] crontab  (2) 2013.09.29
[Tomcat] tomcat 설정(임시)  (0) 2013.09.29
[NAS] NAS4free  (0) 2013.09.25
[WAS] 멀티 톰캣 인스턴스로 실행하기 (Multiple Tomcat Instances)  (0) 2013.09.24
댓글
  • 프로필사진 변군 변군이글루 1. 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 명령을 주로 사용한다.

    2. 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을 수행할 수 있다.

    3. cron table의 각 필드
    CRON ;
    같은 작업을 주기적으로 반복할수 있도록 해준다.
    보통 /etc/rc.d/init.d/crond 데몬에 의해 실행된다.
    설정은 /usr/bin/crontab 명령어를 사용한다.

    ■ 관련 명령어 및 파일
    ** /etc/crontab
    시스템이 정기적인 작업이 수행될수 있도록 기본적으로 설정되어있는 파일이다.

    ** /var/spool/cron 디렉토리
    각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각 사용자이름으로 저장된다.

    ▷ cron 작업을 설정하는 명령이다. 실행시키면 기본 vi 편집기가 실행된다.
    ▷ option
    -l : 현재 crontab 에 의해 설정된 내용을 출력한다.
    -e : crontab 의 내용을 작성하거나 수정한다.
    -r : crontab 의 내용을 삭제한다.
    -u : root권한자가 해당사용자의 crontab 파일을 다룰때 사용한다.
    ▷ 예제
    [root@linux root]#crontab -l : 작업목록을 보여준다.
    [root@linux root]#crontab -e -u bluetree : bluetree 사용자의 crontab 을 수정
    [root@linux root]#crontab aaa : aaa 란 파일을 crontab 으로 사용한다.
    ▷ crontab 의 작업형식 : 5개의 날짜필드와 1개의 명령필드로 구성되어있다.
    MM HH DD mm d command
    .MM : 분을 의미한다 ( 0 ~ 59까지 사용)
    .HH : 시를 의미한다. ( 0 ~ 23 까지 사용)
    .DD : 날짜를 의미한다 ( 1 ~ 31까지 사용)
    .mm : 달을 의미한다.( 1 ~ 12까지 사용)
    .d : 요일을 의미한다.( 0 ~ 7 까지 사용, 0 과 7은 일요일을 나타낸다)
    .command : 실행할 명령을 입력한다.
    ※ 참고 : 위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할수 있고 각각의 요일을 구분할 때 ',' 를 사용하고 연일을 나타낼때는 '-'를 사용한다.
    즉 월요일과 수요일은 '1,3' 월요일부터 금요일까지는 '1-5' 로 표시할수있다

    ■ crontab 내용 설정예
    0 12 * * 1-5 /home/bluetree/start
    → 월요일부터 금요일까지 /home/bluetree/start 란 스크립트를 실행시킨다.

    0 12 1 1-12/2 * /home/bluetree/babo
    → 1월부터 12월까지 2개월마다 /home/blutree/babo 란 화일을 실행시킨다.
    0 4 * * 1,3,5 cat /root/notice | mail -s "notice" iamoki@naver.com
    → 월,수,금 오전 4시에 notice 라는 문서의 내용을 메일로 발송한다.

    ■ cron 사용자 제한
    ※ /etc/cron.allow (허가목록) 과 /etc/cron.deny(거부목록) 을 참조하게된다.
    1. /etc/cron.deny 만 존재하는경우
    모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만 사용불가능.
    2. /etc/cron.allow 만 존재하는 경우
    cron.allow 파일에 등록된 사용자만 사용가능.
    3. 두 파일 모두 없을경우
    모든 사용자가 가능하다
    4. 두 파일 모두 있을경우
    cron.deny 내용을 무시하고 cron.allow 명기된 사용자만 사용가능
    2013.09.29 00:48 신고
  • 프로필사진 변군 변군이글루 # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed
    2013.09.29 00:48 신고
댓글쓰기 폼