Cron 사용법

GENERAL/Crontab2015. 5. 8. 20:20
반응형

1. Cron 설명

⦁ Chronological Data Event Monitor 라는 이름을 가진 프로그램.

⦁ 이 프로그램은 사용자가(User)가 지정한 특정 시간/날짜에 자동으로 예정된 작업을 실행해주는 기능을 한다.

⦁ System account(시스템 계정 - root, adm, sys, uucp, esaadmin)은 AIX설치 시에 기본으로 crontab 파일이 등록되어있으나, 관리자가 계정을 신규로 생성했을 경우에는 crontab 파일을 신규로 생성해줘야 한다. crontab 파일을 생성하는 두 가지 방법이 있다.

   1) /var/spool/cron/crontabs 디렉토리에서 root 계정으로 특정 사용자계정에 대한 파일을 생성해주는 방법

 [ibm_aix:root] /var/spool/cron/crontab > touch user_name

   2) 생성한 계정으로 접속하여, crontab -e 를 통해 파일 생성.

 [ibm_aix:test] /var/spool/cron/crontab > crontab -e

 

⦁ AIX의 init process는 운영체제의 Initialization process(초기화 프로세스) 과정간에 /etc/inittab 파일을 참조하여, cron daemon을 기동한다. 

 

 2. Cron 관련 파일

1) /var/spool/cron/crontabs Directory

⦁ 위의 crontab 디렉토리 내에, 각 사용자(User)별로 cron 파일이 존재한다.

 [ibm_aix:root] / > cd /var/spool/cron/crontabs
 [ibm_aix:root] /var/spool/cron/crontabs > ls  
 total 40
-rw-r--r--    1 adm      cron           2016 Jul 01 2007     adm
-rw-r--r--    1 sys      cron            849 Jul 01 2007      sys
-rw-r--r--    1 root     cron           1118 Oct 21 2014      uucp
-rw-r--r--    1 esaadmin cron             38 Oct 21 2014   esaadmin
-rw-------    1 root     cron           1516 May 14 16:24   root
-rw-r--r--    1 root     system            0 May 14 16:29    aix_test


2) /var/adm/cron/log File

⦁ cron daemon의 로그를 확인할 수 있다.


3) /etc/cronlog.conf

 ⦁ /etc/cronlog.conf 파일은 cron daemon에게 "어디에 로그가 저장되고, 어떤 방식으로 로그가 관리가 되는지에 대한 정의"를 알려주는 파일이다.

 ⦁ AIX5.3 이하버전에서는 /var/adm/cron/log 파일 하나에만 지속적으로 로깅을 하였으나, AIX6.1 이상의 버전에서는 cron log파일의 사이즈를 제한하여, 제한사이즈보다 파일크기가 커지게 되면, 해당 log파일을 rotate하여 archive 항목에 지정한 PATH로 해당 파일이 저장된다.

 ⦁ 파일 설정 형식

 logfile=/var/adm/cron/log      [cron log가 저장되는 위치]

 size=100K                       [cron log size 설정]

 rotate=4                         [몇 번의 cron log 파일을 rotate 할 것인지]

 archive=/var/adm/cron/log    [rotate된 파일이 저장될 위치]

 compress                       [rotate할 때, 해당 파일을 압축하는 comment]

   : rotate는 최소 2이상으로 지정해야 하며, 만약 rotate 항목을 설정하지 않으면 제한없이 무한정 rotate 됨.


  ⦁ 파일이 rotate되는 방식
 : 아래 예제는 rotate를 4로 지정했을 때의 캡처화면이며, 총 4개의 log 파일이 rotate된다. 

 [ibm_aix:test] /var/adm/cron > ls -al /var/adm/cron/log*

-rw-rw-r–    1 root     cron          79986 Aug 25 14:00 /var/adm/cron/log

-rw-rw-r–    1 root     cron          79986 Aug 12 13:40 /var/adm/cron/log.0.Z

-rw-rw-r–    1 root     cron          79986 Aug 16 11:40 /var/adm/cron/log.1.Z

-rw-rw-r–    1 root     cron          79986 Aug 18 13:40 /var/adm/cron/log.2.Z

-rw-rw-r–    1 root     cron          79986 Aug 21 06:00 /var/adm/cron/log.3.Z



4) /var/adm/cron/cron.deny & /var/adm/cron/cron.allow

⦁ 위의 두 파일은 cron의 접근제어를 담당하는 파일이다.

⦁ cron.deny 파일은 AIX 최초 설치시 자동생성되지만, cron.allow 파일은 필요에 따라 생성해줘야 한다.

⦁ cron.deny의 역할 : cron.deny 파일안에 특정 계정이 등록되면, 해당하는 계정은 cron을 사용할 수 없다. 

⦁ cron.allow의 역할 : cron.allow 파일안에 특정 계정이 등록되면, 해당하는 계정은 cron을 사용할 수 있다.


  3. Cron 관련 명령어

1) crontab -l

⦁ 현재 로그인한 계정의 crontab 파일의 내용을 출력해준다. 

2) crontab -e

⦁  현재 로그인한 계정의 crontab 파일의 내용을 수정할 수 있다.

3) crontab -r

⦁ 현재 로그인한 계정의 crontab 파일을 삭제해준다.  

4) crontab -v

⦁ 현재 로그인한 계정의 crontab 파일의 최초 수정날짜를 출력해준다. 

5) crontab mycronfile

⦁ 현재 로그인한 계정의 crontab 파일을 mycronfile 이라는 파일로 등록한다.

⦁ /var/spool/cron/crontabs 디렉토리 안에 있는 해당 계정의 crontab 파일 내용을 mycronfile 파일의 내용으로 바꿔준다.

⦁ 기존에 사용했던 crontab 파일을 다른 내용을 가진 crontab 파일로 변경할 때 사용하며, 신규로 crontab 파일을 등록할때도 사용한다.


 4. Crontab 파일 형식

minute    hour    day_of_month    month        weekday          command

0-59      0-23       1-31            1-12        0-6 Sun-Sat     shell command

 

⦁ 예제 (매주 일요일, 2:36 시간에 /usr/local.sbin/backup.sh를 실행하는 실행예제)




반응형
Posted by 정병욱