320x100

안녕하세요.

오늘은 cron 데몬에 대해서 알아보겠습니다.

 

cron 데몬이란?

 날짜별 데이터 이벤트 관리자인 cron 데몬은 특정 시간과 날짜에 작업이 자동으로 실행되도록 스케줄하는 프로그램입니다.

 inittab 파일은 cron 데몬을 비롯한 AIX의 모든 시동 프로그램을 포함합니다. AIX 시동 시 init 프로세스는 운영체제의 초기화 과정동안 inittab 파일에서 cron 데몬 또는 cron기동시킵니다

 

 

1. 작업을 cron에 제출

다음 중 한가지를 수행하여 작업 또는 이벤트를 cron에 제출할 수 있습니다.

- 한 번 수행을 위한 작업 제출을 위해서는 at batch 기능을 사용합니다

- 정기적으로 스케줄된 간격(한시간 마다, 매일, 매주 등)으로 작업을 실행하기 위해서는 crontab을 사용합니다.

 

기본적으로 cron은 동일한 중요성을 갖는 100개의 이벤트를 동시에 수행할 수 있도록 설정되었습니다.
/usr/adm/cron/queuedefs 파일에서 동시 수행 이벤트의 개수 제한값과 이벤트 유형에 따른 우선순위를 변경할 수 있습니다. cron 데몬은 항상 실행 중이며 이러한 모든 AIX 이벤트를 처리해야 합니다. 

 

2. 작업 스케줄링

스케줄링 되어 있는 정기적인 간격으로, cron/var/spool/cron/crontabs 디렉토리에 있는 crontab 파일을 찾아 읽습니다. 이러한 파일들은 사용자가 제출한 작업을 포함합니다.

예를 들어, /var/spool/cron/crontabs /john 파일은 John 이라는 사용자의 작업을 포함합니다.
cron은 각각의 사용자가 시스템에 로그인해서 명령어를 입력한 것처럼 자동으로 이들 작업을 실행합니다.

 

3. 스케줄링 과정의 흐름

 etc/inittab 파일은 /etc/init에 의해 읽혀지고, inittab파일에 있는 라인은 init에 의해 현재 또는 지정된 실행 레벨에 따라 순차적으로 처리됩니다.

 cron 데몬 /var/spool/cron/crontabs 디렉토리에 들어있는 파일들을 읽습니다. 이 디렉토리에 있는 파일은 개별 사용자 이름을 따라 명명되어 있습니다.

 crontabs 디렉토리에 있는 파일이 변경되면, cron 데몬은 그 파일을 다시 읽어 반드시 그 내용을 알고 있어야 합니다.

 

 

cron 사용법

다음의 파일 중 하나가 존재하지 않을 경우 root 사용자만이 cron을 사용할 수 있습니다.
 - /var/adm/cron/cron.deny - 이 파일에 들어있는 사용자를 제외한 임의의 사용자가 cron을 사용할 수 있습니다.

 - /var/adm/cron/cron.allow - 이 파일에 들어있는 사용자들(root 사용자를 포함)cron을 사용할 수 있습니다.


디폴트로 AIX는 아무 내용이 없는 /var/adm/cron/cron.deny 파일을 생성합니다. 이 파일은 모든 사용자가 cron을 사용할 수 있도록 합니다. 액세스를 제한하려면 cron.deny 파일에 이름을 추가하거나 제거하고 cron.allow 파일을 설정해야 합니다.

 

1. cron 파일의 형식

crontab 파일의 형식에는 6개의 항목이 다음의 순서로 구성되어 있습니다.

시간 날짜 요일 명령어

- 분은 0 ~ 59 사이의 값을 갖습니다.

- 시간은 0 ~ 23 사이의 값을 갖습니다.

- 해당 월의 날짜는 1 ~ 31 사이의 값을 갖습니다.

- 해당 년도의 월은 1 ~ 12 사이의 값을 갖습니다.

- 일은 0 ~ 6 사이의 값을 가집니다. 0=일요일, 1=월요일의 순입니다.

- 명령어는 실행할 명령어 입니다.

 

2. crontab 파일 형식에 대한 형식 규칙

crontab 파일의 형식에 대한 규칙은 다음과 같습니다.
- 공백은 각 항목을 분리시키며 항목 내에는 포함될 수 없습니다.

- 별표(*)는 지정된 항목의 모든 값 또는 가능한 값을 나타냅니다.

- 쉽표(,)는 값의 나열을 나타냅니다.

- 대쉬(-)는 값의 범위를 나타냅니다.

 

3. crontab 형식의 예

이 예에서는 cron이 월요일부터 금요일까지 자정에 백업 프로그램을 실행합니다.

 

- 첫 번째 항목은 해당되는 시의 0분을 명시합니다.

- 두 번쨰 항목은 해당 날짜의 시간을 명시합니다. 여기에서 시간은 자정입니다. 공박이 항목의 구분자 역할을 합니다.

- 세 번쨰 항목은 해당 월의 모든 날짜를 명시합니다. 별표(*)는 모든 값 또는 가능한 값을 나타냅니다.

- 네 번째 항목은 해당 연도의 모든 달을 명시합니다.

- 다섯 번째 항목은 월요일부터 금요일까지를 명시합니다. 범위의 값을 위해서는 대쉬(-)를 사용합니다.

- 여섯 번째 항목은 실행할 명령어를 명시합니다.

 

이 예에서는 cron이 월요일부터 금요일까지 오전 8시와 오후 5시 사이에 매 15분마다 /home/team01/myscript 파일을 실행합니다.

- 매 15분을 명시합니다. 공백이 항목의 구분자 역할을 합니다.

- 오전 8시와 오후 5시 사이를 명시합니다.

- 해당 월의 모든 날짜를 명시합니다.

- 해당 연도의 모든 달을 명시합니다.

- 월요일부터 금요일까지를 명시합니다.

- 실행할 스크립트 파일 이름을 명시합니다.

 

4. 자주 사용되는 명령어

crontab 파일을 관리하는 데 가장 자주 사용되는 명령은 다음과 같습니다.
- crontab –l : 현재의 crontab 파일의 내용을 보여줍니다.

- crontab –e : 현재의 crontab 파일을 편집합니다.

- crontab –r : crontab 디렉토리에 있는 사용자의 crontab 파일을 삭제합니다.

- crontab file : cron spool 디렉토리에 새로운 파일을 제출합니다.

 

 

감사합니다.

오늘도 즐거운 하루되세요 ^^

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts