리눅스 crontab 사용방법
- Operating System
- 2010. 2. 16.
리눅스 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분)
[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)