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

인쇄 보기 종료

업데이트 날짜: 2014년 9월
 
 

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

    다음 단원에서는 at 명령을 사용하여 다음 작업을 수행하는 방법을 설명합니다.

  • 나중에 실행할 작업(명령 및 스크립트) 예약

  • 작업 표시 및 제거

  • at 명령에 대한 액세스 제어

기본적으로 사용자는 자신의 at 작업 파일을 만들고, 표시 및 제거할 수 있습니다. root 또는 다른 사용자에 속하는 at 파일에 액세스하려면 root 역할을 맡아야 합니다.

at 작업 파일 제출

at 작업을 제출할 때 작업 식별 번호가 .a 확장자와 함께 지정됩니다. 이 지정이 작업의 파일 이름과 대기열 번호가 됩니다.

at 작업 파일 제출은 다음 단계를 따릅니다.

  1. at 유틸리티를 호출하고 명령 실행 시간을 지정합니다.

  2. 나중에 실행할 명령 또는 스크립트를 입력합니다.


    주 -  이 명령 또는 스크립트의 출력이 중요하면 나중에 조사할 수 있도록 출력을 파일로 재지정해야 합니다.

예를 들어, 다음 at 작업은 7월의 마지막 날 자정에 사용자 계정 smith에서 core 파일을 제거합니다.

$ at 11:45pm July 31
at> rm /home/smith/*core*
at> Press Control-d
commands will be executed using /bin/csh
job 933486300.a at Tue Jul 31 23:45:00 2004

at 작업 만들기

다음 작업은 at 작업을 만드는 방법에 대해 설명합니다.

at 작업을 만드는 방법

  1. at 유틸리티를 시작하여 작업을 실행할 시간을 지정합니다.
    $ at [-m] time [date] 
    -m

    작업이 완료된 후에 전자 메일을 보내도록 지정합니다.

    time

    작업을 예약할 시를 지정합니다. 24 시간제에 따라 시를 지정하지 않으려면 am 또는 pm을 추가합니다. 허용 가능한 키워드는 midnight, noon, now입니다. 분은 선택 사항입니다.

    date

    월의 처음 3자 이상, 주의 일 또는 키워드 todaytomorrow를 지정합니다.

  2. at 프롬프트에서 실행할 명령 또는 스크립트를 한 라인에 하나씩 입력합니다.

    각 라인의 끝에 Return을 누르면 여러 개의 명령을 입력할 수 있습니다.

  3. Ctrl-D를 눌러 at 유틸리티를 종료하고 at 작업을 저장합니다.

    at 작업에 대기열 번호(작업의 파일 이름)가 지정됩니다. 이 번호는 at 유틸리티를 종료할 때 표시됩니다.

예 4-7  at 작업 만들기

다음 예는 사용자 jones가 오후 7:30에 백업 파일을 제거하기 위해 만든 at 작업을 보여줍니다. 사용자는 작업이 완료된 후에 전자 메일 메시지를 받도록 –m 옵션을 사용했습니다.

$ at -m 1930
at> rm /home/jones/*.backup
at> Press Control-D
job 897355800.a at Thu Jul  12 19:30:00 2004

at 작업 실행을 확인한 전자 메일 메시지를 받았습니다.

Your “at” job “rm /home/jones/*.backup”
completed.

다음 예는 토요일 아침, 오전 4:00에 jones가 대규모 at 작업을 예약하는 방법을 보여줍니다. 작업 출력이 big.file이라는 파일로 재지정되었습니다.

$ at 4 am Saturday
at> sort -r /usr/dict/words > /export/home/jones/big.file

at 대기열 표시

at 대기열에 대기 중인 작업을 확인하려면 atq 명령을 사용합니다.

$ atq

이 명령은 생성된 at 작업에 대한 상태 정보를 표시합니다.

at 작업 확인

at 작업을 만들었는지 확인하려면 atq 명령을 사용합니다. 다음 예에서 atq 명령은 jones에 속하는 at 작업이 대기열에 제출되었음을 확인합니다.

$ atq
Rank	  Execution Date     Owner     Job         Queue   Job Name
  1st   Jul 12, 2004 19:30   jones  897355800.a     a     stdin
  2nd   Jul 14, 2004 23:45   jones  897543900.a     a     stdin
  3rd   Jul 17, 2004 04:00   jones  897732000.a     a     stdin

at 작업 표시

at 작업의 실행 시간에 대한 정보를 표시하려면 at -l 명령을 사용합니다.

$ at -l [job-id]

여기서 –l job-id는 상태를 표시할 특정 작업의 선택적 식별 번호입니다. ID가 없으면 이 명령은 사용자가 제출한 모든 작업의 상태를 표시합니다.

예 4-8  at 작업 표시

다음 예에서는 사용자가 제출한 모든 작업의 상태 정보를 제공하는 at -l 명령의 샘플 출력을 보여줍니다.

$ at -l
897543900.a	Sat Jul 14 23:45:00 2004
897355800.a	Thu Jul 12 19:30:00 2004
897732000.a	Tue Jul 17 04:00:00 2004

다음 예는 at -l 명령으로 단일 작업을 지정할 때 표시되는 샘플 출력을 보여줍니다.

$ at -l 897732000.a
897732000.a		Tue Jul 17 04:00:00 2004

at 작업을 제거하는 방법

시작하기 전에

root 또는 다른 사용자에 속하는 at 작업을 제거하려면 root 역할을 맡습니다. Oracle Solaris 11.2의 사용자 및 프로세스 보안 의 지정된 관리 권한 사용을 참조하십시오.

자신의 고유 at 작업을 제거할 때는 root 역할을 맡을 필요가 없습니다.

  1. 작업을 실행하기 전에 대기열에서 at 작업을 제거합니다.
    # at -r [job-id]

    여기서 –r job-id 옵션은 제거할 작업의 식별 번호를 지정합니다.

  2. at -l(또는 atq) 명령을 사용하여 at 작업이 제거되었는지 확인합니다.

    at -l 명령은 at 대기열에 남은 작업을 표시합니다. 지정한 식별 번호를 가진 작업이 나타나지 않아야 합니다.

    $ at -l [job-id]
예 4-9  at 작업 제거

다음 예에서 사용자는 7월 17일 오전 4시에 실행하도록 예약된 at 작업을 제거하려고 합니다. 먼저, 사용자가 작업 식별 번호를 찾기 위해 at 대기열을 표시합니다. 그 다음, 사용자가 at 대기열에서 이 작업을 제거합니다. 마지막으로, 사용자가 이 작업이 대기열에서 제거되었는지 확인합니다.

$ at -l
897543900.a	Sat Jul 14 23:45:00 2003
897355800.a	Thu Jul 12 19:30:00 2003
897732000.a	Tue Jul 17 04:00:00 2003
$ at -r 897732000.a
$ at -l 897732000.a
at: 858142000.a: No such file or directory

at 명령에 대한 액세스 제어

지정된 사용자만 at 작업에 대한 대기열 정보를 만들거나, 제거, 표시하도록 허용하여 at 명령에 대한 액세스를 제어하도록 파일을 설정할 수 있습니다. at 명령에 대한 액세스를 제어하는 파일인 /etc/cron.d/at.deny는 사용자 이름 목록(한 행에 사용자 이름 하나씩)으로 구성됩니다. 이 파일에 나열된 사용자는 at 명령에 액세스할 수 없습니다.

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

daemon
bin
smtp
nuucp
listen
nobody
noaccess

수퍼 유저 권한으로 at.deny 파일을 편집하여 제한할 at 명령 액세스를 가진 다른 사용자 이름을 추가할 수 있습니다.

at 명령에 대한 액세스 거부

root로 /etc/cron.d/at.deny 파일을 편집하여 at 명령의 사용을 금지할 사용자 이름을 한 행에 하나씩 추가합니다.

daemon
bin
smtp
nuucp
listen
nobody
noaccess
username1
username2
username3
.
.
.
예 4-10  at 액세스 거부

다음 예는 사용자 smith jonesat 명령에 액세스할 수 없도록 편집한 at.deny 파일을 보여줍니다.

$ cat at.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
smith
at 명령 액세스가 거부되었는지 확인

사용자 이름이 /etc/cron.d/at.deny 파일에 제대로 추가되었는지 확인하려면 사용자로 로그인된 동안 at -l 명령을 사용합니다. 예를 들어 로그인한 사용자 smithat 명령에 액세스할 수 없으면 다음 메시지가 표시됩니다.

# su smith
Password:
# at -l
at: you are not authorized to use at.  Sorry.

마찬가지로, 사용자가 at 작업을 제출하려면 다음 메시지가 표시됩니다.

# at 2:30pm
at: you are not authorized to use at.  Sorry.

이 메시지는 사용자가 at.deny 파일에 나열되었음을 확인합니다.

at 명령 액세스가 허용된 경우 at -l 명령이 아무것도 반환하지 않습니다.