리눅스 crontab 사용방법


리눅스 crontab 사용방법

crontab 이라는 명령어는 윈도우로 따지면 작업스케쥴과 비슷하겠습니다.

즉, 특정 시간에 원하는 작업이 저절로 실행될 때 사용을 합니다.

하지만,  현업에서는 정말 중요한 job이 돌 때는 crontab 을 설정 해 놓지만 사람이 그 시간에 정말 작업이 돌고 있는지 확인을 하지요..


crontab [-l][-e][-r]
이렇게 주로 사용합니다.

/var/spool/cron   여기에 해당 파일이 있으며 관리자만 접근이 가능합니다.

cron table 작성 시에는 ....

분 시 일 월 요일  + 명령 행   이런 조합으로 되는데 능숙하게 사용 하실려면 예제를 많이 보는 방법이 제일 좋은 것 같습니다.

분 0~59
시 0~23
일 1~31
월 1~12
요일 0~6 , 0=일요일  , 영어로 써도 됩니다.

#을 사용해서 주석처리가 가능합니다.
, 를 사용해서 여러 값 설정이 가능합니다.
- 를 사용해서 인터벌을 줄 수 있습니다.

crontab -e
이렇게 치면 입력 할 수 있는 화면이 나옵니다.

crotab -l
이것은 기존의 정보를 보는 것입니다.

crontab -r 이것은 기존의 값을 삭제하는 것입니다.


예제

 # 매일 00시 05분에 특정작업을 하는 경우
5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# 매달 1일 오후 2시 15분에
15 14 1 * *     $HOME/bin/monthly
# 월요일부터 금요일 까지 매일 오후 10시에.
0 22 * * 1-5   mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "이것은 매일 0, 2, 4, ... 시 23분에 보여집니다."
5 4 * * sun     echo "이것은 매 일요일 오전 4시 5분에 보여집니다."
http://www.linuxcertif.com/man/5/crontab/ko/


30 4,12 * * * /usr/bin/cmd  (매일 새벽4시 30분, 낮12시 30분에 /usr/bin/cmd 를 실행)

 

40 1 * * 0  /home/bloodguy/db.sh   (매주 일요일 새벽 1시 40분에 /home/bloodguy/db.sh 를 실행)

 

0 4-6 * * * 명령어  (매일 오전 4,5,6 시)

5 */2 * * * 명령어  (매일 2시간 간격으로 5분대 = 2시 5분, 4시 5분, 6시 5분 ... )

15 1 1 * *  명령어  (매월 1일 1시 15분)

30 3 1 1,3,6,9 명령어 (1월 1일 3시 30분, 3월 1일 3시 30분, 6월 1일 3시 30분, 9월 1일 3시 30분)

 http://www.underroom.com/5297



[root@rhel ~]# crontab --help
crontab: invalid option -- -
crontab: usage error: unrecognized option
usage:  crontab [-u user] file
        crontab [-u user] [ -e | -l | -r ]
                (default operation is replace, per 1003.2)
        -e      (edit user's crontab)
        -l      (list user's crontab)
        -r      (delete user's crontab)
        -i      (prompt before deleting user's crontab)
        -s      (selinux context)




CRONTAB(1)                                                          CRONTAB(1)

NAME
       crontab - maintain crontab files for individual users (ISC Cron V4.1)

SYNOPSIS
       crontab [-u user] file
       crontab [-u user] [-l | -r | -e] [-i] [-s]

DESCRIPTION
       Crontab  is the program used to install, deinstall or list the tables used to drive the cron(8) daemon in ISC Cron.  Each user can have their own crontab,
       and though these are files in /var/spool/ , they are not intended to be edited directly. For SELinux in mls mode can be even  more  crontabs  -  for  each
       range. For more see selinux(8).

       If  the cron.allow file exists, then you must be listed therein in order to be allowed to use this command.  If the cron.allow file does not exist but the
       cron.deny file does exist, then you must not be listed in the cron.deny file in order to use this command.  If neither of these  files  exists,  only  the
       super user will be allowed to use this command.

OPTIONS
       -u     It  specifies the name of the user whose crontab is to be tweaked.  If this option is not given, crontab examines "your" crontab, i.e., the crontab
              of the person executing the command.  Note that su(8) can confuse crontab and that if you are running inside of su(8) you should always use the  -u
              option  for  safety’s  sake.  The first form of this command is used to install a new crontab from some named file or standard input if the pseudo-
              filename "-" is given.

       -l     The current crontab will be displayed on standard output.

       -r     The current crontab will be be removed.

       -e     This option is used to edit the current crontab using the editor specified by the VISUAL or EDITOR environment variables.  After you exit from  the
              editor, the modified crontab will be installed automatically.

       -i     This option modifies the -r option to prompt the user for a ’y/Y’ response before actually removing the crontab.

       -s     It  will  append  the current SELinux security context string as an MLS_LEVEL setting to the crontab file before editing / replacement occurs - see
              the documentation of MLS_LEVEL in crontab(5).

SEE ALSO
       crontab(5), cron(8)

FILES
       /etc/cron.allow
       /etc/cron.deny

STANDARDS
       The crontab command conforms to IEEE Std1003.2-1992 (‘‘POSIX’’).  This new command syntax differs from previous versions of Vixie Cron, as  well  as  from
       the classic SVR3 syntax.

DIAGNOSTICS
       A fairly informative usage message appears if you run it with a bad command line.

AUTHOR
       Paul Vixie <vixie@isc.org>

4th Berkeley Distribution       16 Januar 2007                      CRONTAB(1)