명령어나 스크립트의 실행을 예약한다.

at [옵션] 시간 [날짜] [+증가시간] (Language : text)
시간 : 명령어나 스크립트를 실행할 시간을 지정한다.

+증가시간 : 증가 시간만큼 지난 후 실행한다.

-q queue : queue 이름을 지정한다. 큐 이름으로는 a~z, A~Z 가 쓰일 수 있다. 큐 이름을 지정해 주지 않으면 at 는 a 를 batch 는 b 를 사용한다. 알파벳 순서로 뒤의 이름을 갖는 큐는 더 큰 niceness 값을 갖는다. = 큐는 현재 수앻되는 작업에 대한 큐로 예약되어 있다. 대문자 이름의 큐에 추가된 작업은 batch 의 작업처럼 처리된다.

-m : 출력 결과가 없더라도 작업이 완료될 때 사용자에게 메일을 보낸다.

-f 파일명 : 스크립트 파일 등을 실행해 줄 때 사용한다.

-l : 예약된 작업 목록을 보여준다.

-v : 작업이 수행될 시간을 보여준다.

-d : 예약된 작업을 삭제한다. (Linux)

-r : 예약된 작업을 삭제한다. (Unix)

 at 는 등록된 명령어를 원하는 시간에 실행하게 하는 기능을 한다. 즉 시스템의 부하가 적은 시간에 실행시키거나 예약된 시간에 꼭 실행되어야 하는 작업을 자동으로 처리하고자 할 때 사용한다.

 at 에 의해 실행할 시간 설정

 예약 작업 기능이므로 시간에 대한 설정이 중요하다. at 의 시간 설정은 날짜와 시간을 정해주는 시간 설정과 현재 시간 혹은 정해진 시간에서 증가시간으로 설정해 주는 방법이 있다.

 시간표현 방법

분류  |  형식        |    설명                                                | 예
================================================================================================
시간 |  hh:mm      | hh(시간), mm(분)으로 설정                            | 16:18
     ——————————————————————————————–
     | am, pm       | 표시가 없는 경우 Linux 나 Unix 에서는 하루를 24시 |   4:18 pm
     |               | 간으로 표현한다. am 과 pm 을 이용하여 12시간 단위 |
     |               | 표현이 가능하다.                                      |
    ———————————————————————————————
     | midnight     | midnight(00:00), noon(12:00), teatime(16:00) 같은 |
     | noon         | 서술형 시간으로도 지정이 가능하다. now 는 현재시간|
     | teatime      | 이며 증가시간 설정에 많이 쓰인다.                   |
     | now          |                                                         |
————————————————————————————————
날짜 | yyyy-mm-dd | 일반적인 날짜 구성으로 표현                        | 2008-10-31
      ——————————————————————————————-
      | month num   | 4월 13일은 “April 13” 로 표현한다. 혹은 약자로     |  April 13
      |               | “Apr 13” 로 표현할 수 있다.                          |
      ——————————————————————————————-
      | today        | 오늘 또는 내일로 지정할 수 있다. 각 요일별로도 표  |
      | tomorrow    | 현이 가능하다.                                       |
================================================================================================

 test 라는 파일을 만들어 주는 명령어인 touch test 이란 명령어를 at 에 등록하여 2008년 10월 31일 03:35 에 실행한다. 2008년 10월 31일 3:35 는 “03:35 2008-10-31” 으로 표현할 수 있다.

사용자 삽입 이미지

 at 에 예약된 작업 정보
작업번호 | 날짜              | 시간 queue    |     이름    | 사용자
     1       Fri Oct 31          03:35              a         pchero

 작업번호 : at 에 등록된 작업 번호, 등록된 순서대로 매겨지며 at -d, 또는 atrm 을 이용해 at 작업을 삭제해 줄 때 사용.

 날짜/시간 : 등록된 명령이 실행 될 시간
 
 queue 이름 : “-q” 옵션을 이용하여 큐 이름을 지정

 사용자 : at 에 작업을 예약한 사용자

 증가시간을 이용한 설정

 현재 시간으로부터 6시간 ㄷ후에 Control.sh 스크립트가 실행 되도록 예약하고 싶다면 다음과 같이 f 옵션을 사용하여 예약 작업으로 등록한다.

 또한 리다이렉션을 이용해도 같은 결과를 얻을 수 있다.

 # at now +6 hours -f Control.sh
 파일을 예약 작업으로 등록

 # at now + 6 hours < Control.sh
 리다이렉션을 이용한 예약작업 등록

 먄약 20번에 예약된 작업을 삭제하고 싶다면 다음과 같이 삭제한 작업번호를 지정한다.

 # at -d 20

 
 at 의 사용 권한 설정

 at 명령어는 at.allow 와 at.deny 두 파일을 이용해 일반 사용자의 at 명령어 사용 권한을 지정해 줄 수 있다.

 /etc/at.allow 파일이 있으면 at.allow 에 기록된 사용자만 at 명령어를 사용이 가능하며 /etc/at.allow 파일이 없으면 /etc/at.deny 에 기록이 안된 사용자만 사용이 가능하다. 두 파일 모두 없다면 관리자만 사용할 수 있다.

 관련 명령어

 atq : 예약된 작업 목록을 보여 준다.

 atrm : 예약된 작업 목록을 삭제한다.

 batch : 시스템 부하가 일정 이하일 때 명령을 실행한다.

 cron : 정기적으로 예약된 작업을 수행한다.

Tags: ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.