1. 크론(cron)이란 무엇인가?
2. crontab 사용법(명령어)
3. crontab 필드의 의미
4. cron 시작/종료
1. 크론(cron)이란 무엇인가?
cron이란 특정날짜, 시간에 맞춰 자동으로 실행시켜주는 자동화를 의미
crontab은 이런 cron을 실행시켜주는 명령어
2. crontab 명령어(옵션)
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 -u 유저 -e | -l | -r
해당 유저의 crontab 설정을 할 수 있다.
-e 옵션으로 편집, -l 옵션으로 조회, -r 옵션으로 삭제가 가능하다.
[root@kangtest ~]# crontab -u kjj -l
no crontab for kjj
kjj라는 유저가 사용하고 있는 crontab을 조회한 결과 crontab을 등록하지 않았기 때문에 없다고 나타난다.
crontab -e (crontab 편집)
[root@kangtest ~]# crontab -e
입력하게 되면 vi 같은 편집 창이 나타난다. 이곳에서 cron을 등록 가능하다.
crontab -l (crontab 리스트)
[root@kangtest ~]# crontab -l
00 01 * * * su - root /usr/bin/rdate -s time.bora.net && sbin/hwclock -w
00 16 * * * su - root backup.sh /dev/null 2>&1
crontab -r (crontab 삭제)
[root@kangtest ~]# crontab -r
입력하게 되면 기존에 등록 되어있던 crontab을 삭제한다.
<확인 결과>
[root@kangtest ~]# crontab -l
no crontab for root
crontab이 존재하지 않는다고 나온다.
⇒ 바로 -r 옵션을 주면 아무런 메시지 출력 없이 바로 삭제되어 버린다. 그래서 지우기전에 확인 메시지를 출력하고 싶다면 -i 옵션을 추가 해준다.
[root@kangtest ~]# crontab -i -r
이렇게 -r 옵션 앞에 -i 옵션을 주게 되면 정말 root’s crontab을 삭제 할 것인지 확인 메시지가 출력된다.
crontab: really delete root's crontab?
[root@kangtest backup]# ls -l
합계 1754108
-rw-r--r-- 1 root root 10826831 2015-01-29 16:00 etc.tar.gz
-rw-r--r-- 1 root root 79908 2015-01-29 16:00 home.tar.gz
-rw-r--r-- 1 root root 20231301 2015-01-20 11:49 mysql.tar.gz
-rw-r--r-- 1 root root 1673271561 2015-01-29 16:13 usr.tar.gz
-rw-r--r-- 1 root root 91781499 2015-01-29 16:14 var.tar.gz
3. crontab 필드의 의미
[root@kangtest ~]# cat /etc/crontab을 입력하게 되면
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# 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
각 필드가 의미하는 바를 나타내고 있다.
첫번째 필드의 * 은 분을 나타내고(0~59분)
두번째 필드의 * 은 시를 의미하고(0~23시)
세번째 필드의 * 은 일을 의미하고(1~31일)
네번째 필드의 * 은 월을 의미하고(1~12월)
다섯번째 필드의 * 은 요일을 의미한다(0~6 일,월,화,수,목,금,토)
→ 일요일은 0 또는 7로 사용할 수도 있다.
여섯번째 필드는 실행시킬 명령을 입력한다.
4. crontab 시작/종료
<cron 시작>
[root@kangtest ~]# /etc/init.d/crond start
crond (을)를 시작 중: [ OK ]
<cron 종료>
[root@kangtest ~]# /etc/init.d/crond stop
crond 를 정지 중: [ OK ]
'운영체제(OS) > 리눅스(Linux)' 카테고리의 다른 글
네임서버(DNS) 서버 (0) | 2017.07.26 |
---|---|
유닉스 & 리눅스 파일시스템의 종류 (0) | 2017.07.19 |
리눅스 원격파일 전송 명령어 scp (0) | 2017.07.14 |
리눅스 TCP Wrapper (0) | 2017.07.14 |
리눅스 레드마인 설치 (0) | 2017.07.13 |