Oracle® Solaris 11.2의 시스템 정보, 프로세스, 성능 관리

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

반복적 시스템 작업 예약(cron)

다음 절에서는 crontab 파일을 만들고, 편집, 표시, 제거하는 방법과 이들의 액세스를 제어하는 방법을 설명합니다.

crontab 파일 내부

cron 데몬은 각 crontab 파일에서 발견된 명령에 따라 시스템 작업을 예약합니다. crontab 파일은 정기적 간격으로 실행될 명령들(한 행에 명령 하나씩)로 구성됩니다. 각 라인의 시작 부분은 명령을 실행할 때 cron 데몬을 알려주는 날짜 및 시간 정보를 포함합니다.

예를 들어, root라는 crontab 파일이 Oracle Solaris 소프트웨어 설치 중 제공됩니다. 파일 내용에 다음 명령줄이 포함됩니다.

10 3 * * * /usr/sbin/logadm (1)
15 3 * * 0 /usr/lib/fs/nfs/nfsfind (2)
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 (3)
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean (4)

    이러한 각 명령줄에 대한 출력은 다음과 같습니다.

  • 첫번째 라인은 매일 오전 3:10에 logadm 명령을 실행합니다.

  • 두번째 라인은 매주 일요일 오전 3:15에 nfsfind 스크립트를 실행합니다.

  • 세번째 라인은 매일 오전 2:10에 일광 절약 시간을 검사하는(필요한 경우 수정하는) 스크립트를 실행합니다.

    RTC 시간대나 /etc/rtc_config 파일이 없는 경우 이 항목은 아무것도 아닙니다.


    x86 only -  /usr/sbin/rtc 스크립트는 x86 기반 시스템에서만 실행할 수 있습니다.
  • 네번째 라인은 매일 오전 3:30에 일반 보안 서비스 테이블 /etc/gss/gsscred_db에서 중복 항목을 검사하고 제거합니다.

crontab 파일 내의 라인 구문에 대한 자세한 내용은 crontab 파일 항목의 구문을 참조하십시오.

crontab 파일은 /var/spool/cron/crontabs 디렉토리에 저장됩니다. root 외에 여러 crontab 파일이 Oracle Solaris 소프트웨어 설치 중 제공됩니다.

adm

계산

root

일반 시스템 함수 및 파일 시스템 정리

sys

성능 데이터 수집

uucp

일반 uucp 정리

기본 crontab 파일 외에 crontab 파일을 만들어 고유한 시스템 작업을 예약할 수 있습니다. 사용자 정의 crontab 파일은 bob, mary, smith, jones와 같은 생성된 사용자 계정에서 이름을 따옵니다.

root 또는 다른 사용자에 속하는 crontab 파일에 액세스하려면 수퍼 유저 권한이 필요합니다.

cron 데몬이 예약을 처리하는 방법

cron 데몬은 crontab 명령의 자동 예약을 관리합니다. cron 데몬의 역할은 /var/spool/cron/crontab 디렉토리에 crontab 파일이 있는지 검사하는 것입니다.

    cron 데몬은 시작 시 다음 작업을 수행합니다.

  • crontab 파일을 검사합니다.

  • 파일 내에 나열된 실행 시간을 읽습니다.

  • 적절한 시간에 실행할 명령을 제출합니다.

  • 업데이트된 crontab 파일에 관해 crontab 명령에서 알림을 받습니다.

대부분 똑같은 방법으로 cron 데몬은 at 파일의 예약을 제어합니다. 이러한 파일은 /var/spool/cron/atjobs 디렉토리에 저장됩니다. 또한 cron 데몬은 제출된 at 작업에 관해 crontab 명령에서 알림을 받습니다.

crontab 파일 항목의 구문

crontab 파일은 각 명령줄의 처음 5개 필드로 지정된 시간에 자동으로 실행하는 명령들(한 행에 명령 하나씩)로 구성됩니다.

표 4-2  crontab 시간 필드에 허용 가능한 값
시간 필드
0-59
0-23
월의 일
1-31
1-12
요일
0-6 (0 = 일요일)

    crontab 시간 필드에서 특수 문자를 사용할 때 다음 지침을 따르십시오.

  • 공백을 사용하여 각 필드를 구분합니다.

  • 콤마를 사용하여 여러 값을 구분합니다.

  • 하이픈을 사용하여 값 범위를 지정합니다.

  • 별표를 와일드카드로 사용하여 모든 가능한 값을 포함합니다.

  • 라인 시작 부분에 주석 마크(#)를 사용하여 주석이나 빈 라인을 나타냅니다.

예를 들어, 다음 crontab 명령 입력은 매월 1일과 15일, 오후 4시에 사용자 콘솔 창에 미리 알림을 표시합니다.

0 16 1,15 * * echo Timesheets Due > /dev/console

crontab 파일의 각 명령은 너무 길더라도 한 행씩 구성해야 합니다. crontab 파일은 여분의 캐리지 리턴을 인식하지 않습니다. crontab 항목 및 명령 옵션에 대한 자세한 내용은 crontab(1) 매뉴얼 페이지를 참조하십시오.