JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1에서 시스템 정보, 프로세스 및 성능 관리     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

1.  시스템 정보 관리(작업)

2.  시스템 프로세스 관리(작업)

3.  시스템 성능 모니터링(작업)

4.  시스템 작업 예약(작업)

시스템 작업을 자동으로 실행하는 방법

반복적 작업 예약: crontab

단일 작업 예약: at

시스템 작업 예약

crontab 파일 만들기 및 편집(작업 맵)

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

crontab 파일 내부

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

crontab 파일 항목의 구문

crontab 파일 만들기 및 편집

crontab 파일을 만들거나 편집하는 방법

crontab 파일이 존재하는지 확인하는 방법

crontab 파일 표시

crontab 파일을 표시하는 방법

crontab 파일 제거

crontab 파일을 제거하는 방법

crontab 명령에 대한 액세스 제어

crontab 명령 액세스를 거부하는 방법

crontab 명령 액세스를 지정된 사용자로 제한하는 방법

제한된 crontab 명령 액세스를 확인하는 방법

at 명령을 사용하여 작업 예약

at 명령 사용(작업 맵)

단일 시스템 작업 예약(at)

at 명령의 설명

at 명령에 대한 액세스 제어

at 작업을 만드는 방법

at 대기열을 표시하는 방법

at 작업을 확인하는 방법

at 작업을 표시하는 방법

at 작업을 제거하는 방법

at 명령에 대한 액세스를 거부하는 방법

at 명령 액세스가 거부되었는지 확인하는 방법

5.  시스템 콘솔, 터미널 장치 및 전원 서비스 관리(작업)

색인

시스템 작업 예약

이 절에는 crontab 파일을 사용하여 시스템 작업을 예약하기 위한 작업이 포함됩니다.

crontab 파일 만들기 및 편집(작업 맵)

작업
설명
수행 방법
crontab 파일 만들기 또는 편집
crontab -e 명령을 사용하여 crontab 파일을 만들거나 편집합니다.
crontab 파일이 존재하는지 확인
ls -l 명령을 사용하여 /var/spool/cron/crontabs 파일의 내용을 확인합니다.
crontab 파일 표시
ls -l 명령을 사용하여 crontab 파일을 표시합니다.
crontab 파일 제거
crontab 파일은 제한적 권한으로 설정됩니다. rm 명령이 아닌 crontab -r 명령을 사용하여 crontab 파일을 제거합니다.
crontab 액세스 거부
crontab 명령에 대한 사용자 액세스를 거부하려면 /etc/cron.d/cron.deny 파일을 편집하여 이 파일에 사용자 이름을 추가합니다.
crontab 액세스를 지정된 사용자로 제한
crontab 명령에 대한 사용자 액세스를 허용하려면 /etc/cron.d/cron.allow 파일에 사용자 이름을 추가합니다.

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

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

crontab 파일 내부

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

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

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)

다음은 이러한 명령줄의 출력을 설명합니다.

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

crontab 파일은 /var/spool/cron/crontabs 디렉토리에 저장됩니다. root 외에 여러 crontab 파일이 SunOS 소프트웨어 설치 중 제공됩니다. 다음 표를 참조하십시오.

표 4-2 기본 crontab 파일

crontab 파일
기능
adm
계산
root
일반 시스템 함수 및 파일 시스템 정리
sys
성능 데이터 수집
uucp
일반 uucp 정리

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

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

crontab 파일을 만들고, 편집, 표시, 제거하는 방법을 설명하는 절차는 후속 단원에서 설명합니다.

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

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

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

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

crontab 파일 항목의 구문

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

표 4-3 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) 매뉴얼 페이지를 참조하십시오.

crontab 파일 만들기 및 편집

crontab 파일을 만드는 가장 간단한 방법은 crontab -e 명령을 사용하는 것입니다. 이 명령은 시스템 환경에 설정된 텍스트 편집기를 호출합니다. 시스템 환경의 기본 편집기는 EDITOR 환경 변수에 정의됩니다. 이 변수가 설정되지 않은 경우 crontab 명령이 기본 편집기인 ed를 사용합니다. 가급적 잘 아는 편집기를 선택해야 합니다.

다음 예는 편집기가 정의되었는지 확인하는 방법과 vi를 기본값으로 설정하는 방법을 보여줍니다.

$ which $EDITOR
$ 
$ EDITOR=vi
$ export EDITOR

crontab 파일을 만들 때 /var/spool/cron/crontabs 디렉토리에 자동으로 놓이고 사용자 이름이 부여됩니다. 루트 권한이 있는 경우 다른 사용자 또는 root에 대해 crontab 파일을 만들거나 편집할 수 있습니다.

crontab 파일을 만들거나 편집하는 방법

시작하기 전에

root 또는 다른 사용자에 속하는 crontab 파일을 만들거나 편집하는 경우 root 역할을 가져야 합니다. Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

자신의 고유 crontab 파일을 편집할 때는 root 역할을 가질 필요가 없습니다.

  1. crontab 파일을 만들거나 기존 파일을 편집합니다.
    # crontab -e [username]

    여기서 usernamecrontab 파일을 만들거나 편집할 사용자 계정의 이름을 지정합니다. 수퍼유저 권한 없이 자신의 crontab 파일을 만들 수 있지만, root 또는 다른 사용자의 crontab 파일을 만들거나 편집하려면 수퍼유저 권한이 있어야 합니다.


    주의

    주의 - 실수로 crontab 명령을 아무 옵션 없이 입력한 경우 편집기의 인터럽트 문자를 누르십시오. 이 문자는 변경 사항을 저장하지 않고 종료하도록 허용합니다. 대신, 변경 사항을 저장하고 파일을 종료한 경우 기존 crontab 파일이 빈 파일로 겹쳐 쓰입니다.


  2. crontab 파일에 명령줄을 추가합니다.

    crontab 파일 항목의 구문에 설명된 구문을 따릅니다. crontab 파일은 /var/spool/cron/crontabs 디렉토리에 놓입니다.

  3. crontab 파일 변경 사항을 확인합니다.
    # crontab -l [username]

예 4-1 crontab 파일 만들기

다음 예는 다른 사용자의 crontab 파일을 만드는 방법을 보여줍니다.

# crontab -e jones

crontab 파일에 자동으로 추가된 다음 명령 입력은 매주 일요일 아침, 오전 1:00에 사용자의 홈 디렉토리에서 로그 파일을 제거합니다. 명령 입력이 출력을 재지정하지 않기 때문에 *.log 뒤의 명령줄에 재지정 문자가 추가됩니다. 이렇게 하면 명령이 올바르게 실행됩니다.

# This command helps clean up user accounts.
1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1

crontab 파일이 존재하는지 확인하는 방법

crontab 파일 표시

crontab -l 명령은 cat 명령이 다른 유형의 파일 내용을 표시하는 것과 똑같은 방법으로 crontab 파일의 내용을 표시합니다. 이 명령을 사용하기 위해 디렉토리를 /var/spool/cron/crontabs(여기에 crontab 파일이 위치함)로 변경할 필요는 없습니다.

기본적으로 crontab -l 명령은 자신의 crontab 파일을 표시합니다. 다른 사용자에 속하는 crontab 파일을 표시하려면 수퍼유저여야 합니다.

crontab 파일을 표시하는 방법

시작하기 전에

root 또는 다른 사용자에게 속하는 crontab 파일을 표시하려면 root 역할을 맡습니다. Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

자신의 고유 crontab 파일을 표시할 때는 root 역할을 가질 필요가 없습니다.

예 4-2 crontab 파일 표시

이 예는 crontab -l 명령을 사용하여 사용자의 기본 crontab 파일의 내용을 표시하는 방법을 보여줍니다.

$ crontab -l
13 13 * * * chmod g+w /home1/documents/*.book > /dev/null 2>&1

예 4-3 기본 root crontab 파일 표시

이 예는 기본 root crontab 파일을 표시하는 방법을 보여줍니다.

$ suPassword:

# crontab -l
#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

예 4-4 다른 사용자의 crontab 파일 표시

이 예는 다른 사용자에 속하는 crontab 파일을 표시하는 방법을 보여줍니다.

$ su
Password:
# crontab -l jones
13 13 * * * cp /home/jones/work_files /usr/backup/. > /dev/null 2>&1

crontab 파일 제거

기본적으로 crontab 파일 보호가 설정되므로 rm 명령으로 crontab 파일을 부주의하게 삭제할 수 없습니다. 대신, crontab -r 명령을 사용하여 crontab 파일을 제거하십시오.

기본적으로 crontab -r 명령은 자신의 crontab 파일을 제거합니다.

이 명령을 사용하기 위해 디렉토리를 /var/spool/cron/crontabs(여기에 crontab 파일이 위치함)로 변경할 필요는 없습니다.

crontab 파일을 제거하는 방법

시작하기 전에

root 또는 다른 사용자에게 속하는 crontab 파일을 제거하려면 root 역할을 맡습니다. 역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

자신의 고유 crontab 파일을 제거할 때는 root 역할을 가질 필요가 없습니다.

  1. crontab 파일을 제거합니다.
    # crontab -r [username]

    여기서 usernamecrontab 파일을 제거할 사용자 계정의 이름을 지정합니다. 다른 사용자의 crontab 파일을 제거하려면 수퍼유저 권한이 필요합니다.


    주의

    주의 - 실수로 crontab 명령을 아무 옵션 없이 입력한 경우 편집기의 인터럽트 문자를 누르십시오. 이 문자는 변경 사항을 저장하지 않고 종료하도록 허용합니다. 대신, 변경 사항을 저장하고 파일을 종료한 경우 기존 crontab 파일이 빈 파일로 겹쳐 쓰입니다.


  2. crontab 파일이 제거되었는지 확인합니다.
    # ls /var/spool/cron/crontabs

예 4-5 crontab 파일 제거

다음 예에서는 사용자 smithcrontab -r 명령을 사용하여 자신의 crontab 파일을 제거하는 방법을 보여줍니다.

$ ls /var/spool/cron/crontabs
adm     jones     root    smith    sys     uucp
$ crontab -r
$ ls /var/spool/cron/crontabs
adm     jones    root    sys    uucp

crontab 명령에 대한 액세스 제어

/etc/cron.d 디렉토리의 두 파일 cron.denycron.allow를 사용하여 crontab 명령에 대한 액세스를 제어할 수 있습니다. 이러한 파일은 지정된 사용자만 자신의 crontab 파일 만들기, 편집, 표시, 제거와 같은 crontab 명령 작업을 수행하도록 허용합니다.

cron.denycron.allow 파일은 사용자 이름 목록(한 라인에 사용자 이름 하나씩)으로 구성됩니다.

이러한 액세스 제어 파일은 다음과 같이 작동합니다.

cron.denycron.allow 파일을 편집하거나 만들려면 수퍼유저 권한이 필요합니다.

SunOS 소프트웨어 설치 중 생성된 cron.deny 파일은 다음 사용자 이름을 포함합니다.

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

기본 cron.deny 파일의 사용자 이름 중 아무도 crontab 명령에 액세스할 수 없습니다. 이 파일을 편집하여 crontab 명령에 액세스가 거부될 다른 사용자 이름을 추가할 수 있습니다.

기본 cron.allow 파일은 제공되지 않습니다. 그래서 Oracle Solaris 소프트웨어 설치 후에 모든 사용자(기본 cron.deny 파일에 나열된 사용자 제외)가 crontab 명령에 액세스할 수 있습니다. cron.allow 파일을 만들면 이러한 사용자만 crontab 명령에 액세스할 수 있습니다.

crontab 명령 액세스를 거부하는 방법

  1. root 역할을 맡습니다.

    Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

    $ su -
    Password:
    #
  2. /etc/cron.d/cron.deny 파일을 편집하고 사용자 이름을 한 라인에 하나씩 추가합니다. crontab 명령에 대한 액세스가 거부될 사용자를 넣습니다.
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. /etc/cron.d/cron.deny 파일이 새 항목을 포함하는지 확인합니다.
    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

crontab 명령 액세스를 지정된 사용자로 제한하는 방법

  1. root 역할을 맡습니다.

    Oracle Solaris 11.1 관리: 보안 서비스의 지정된 관리 권한을 사용하는 방법을 참조하십시오.

  2. /etc/cron.d/cron.allow 파일을 만듭니다.
  3. root 역할을 cron.allow 파일에 추가합니다.

    root를 파일에 추가하지 않으면 crontab 명령에 대한 수퍼유저 액세스가 거부됩니다.

  4. 사용자 이름을 한 라인에 하나씩 추가합니다.

    crontab 명령을 사용하도록 허용될 사용자를 넣습니다.

    root
    username1
    username2
    username3
    .
    .
    .

예 4-6 crontab 명령 액세스를 지정된 사용자로 제한

다음 예는 사용자 이름 jones, temp, visitorcrontab 명령에 액세스하지 못하게 막는 cron.deny 파일을 보여줍니다.

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

다음 예는 cron.allow 파일을 보여줍니다. 사용자 root, jonessmithcrontab 명령에 액세스할 수 있는 유일한 사용자입니다.

$ cat /etc/cron.d/cron.allow
root
jones
smith

제한된 crontab 명령 액세스를 확인하는 방법

특정 사용자가 crontab 명령에 액세스할 수 있는지 확인하려면 사용자 계정으로 로그인한 동안 crontab -l 명령을 사용합니다.

$ crontab -l

사용자가 crontab 명령에 액세스할 수 있고 이미 crontab 파일을 만든 경우 파일이 표시됩니다. 그렇지 않으면, 사용자가 crontab 명령에 액세스할 수 있지만 crontab 파일이 없어서 다음과 비슷한 메시지가 표시됩니다.

crontab: can't open your crontab file

이 사용자가 cron.allow 파일(존재하는 경우)에 나열되거나 사용자가 cron.deny 파일에 나열되지 않습니다.

사용자가 crontab 명령에 액세스할 수 없을 경우 다음 메시지가 이전 crontab 파일이 존재하는지 여부를 표시합니다.

crontab: you are not authorized to use cron. Sorry.

이 메시지는 사용자가 cron.allow 파일(있는 경우)에 나열되지 않거나 사용자가 cron.deny 파일에 나열되어 있음을 의미합니다.