반응형

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  ]




반응형

+ Recent posts