강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : at을 통한 예정 작업 설정

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: at을 통한 예정 작업 설정

 

 

at는 정해진 시간에 지정된 작업을 수행할 수 있는 명령어이다.

 

 

 

이 명령은 특정일의 지정된 시각에 지정된 작업을 1회 실행한다.

 

 

 

그리고 at에 관련된 at, batch, atq, atrm 등의 명령들은 나중에 실행할 작업에 대한 설정, 검사, 삭제를 할 수 있는 명령들이다.

 

 

 

이것들에 의해 지정된 명령들은 atd 데몬을 통해서 수행한다.

 

 

 

이것을 통해 일정한 시간에 시스템에서 명령을 수행할 수 있게 된다.

 

 

 

 

다음은 특정 시스템에서 atd 데몬이 PID 462번으로 실행되고 있는 것이다.

 

 

 

리눅스에는 이 데몬이 기본적으로 설정이 되어 있으므로 따로 설치하지 않아도 실행이 가능하다.

 

 

 

 

 

 

 

 

$ ps -e | grep atd

462 ? 00:00:00 atd

 

 

 

 

 

 

 

개요

at에 관련된 명령어들은 at과 이것의 실행에 관련된 것들이다.

 

 

 

기본 용법은 다음과 같다.

 

 

 

 

 

 

 

 

 

at [-V] [-q queue] [-f file] [-mldbv] [TIME] [명령]

at -c job [job...]

atq [-V] [-q queue]

atrm [-V] job [job...]

batch [-V] [-q queue] [-f file] [-mv] [TIME] [명령]

 

 

 

 

 

atbatch는 나중에 /bin/sh를 이용하여 실행할 명령을 표준 입력이나 지정한 파일에서 읽어 들인다.

 

 

 

다음은 명령들 각각에 대한 설명이다.

 

 

 

 

 

명령

설명

at

지정한 시간에 명령을 실행한다.

 

 

 

atq

현재 사용자의 등록된 작업 목록을 보여준다.

 

 

 

만약 수퍼 유저일 경우에는 모든 사람의 작업 목록을 보여준다.

 

 

 

출력 형식은 각 작업당 한 줄로 작업 번호, 날짜, 시간, 작업 구분 순이다.

 

 

 

atrm

지정된 작업 번호의 작업을 삭제한다.

 

 

 

batch

시스템 부하 수준이 낮을 때 명령을 수행한다.

 

 

 

, 부하 평균이 0.8 이하 또는 atrun으로 지정한 값 이하로 떨어졌을 때 수행한다.

 

 

 

 

 

옵션

 

 

at에는 다음과 같은 옵션들이 있다.

 

 

 

 

 

옵션

설명

-V

표준 에러로 버전 번호를 출력한다.

 

 

 

-q queue

명시한 큐를 사용한다.

 

 

 

큐 이름은 한 단어로 되어 있다.

 

 

 

유효한 이름은 a부터 z까지와 A부터 Z까지이다.

 

 

 

a 큐는 at의 초기값이고 b 큐는 batch의 초기값이다.

 

 

 

알파벳 순서로 뒤의 이름을 갖는 큐는 더 큰 niceness 값을 갖는다.

 

 

 

특별히 "=" 큐는 현재 수행되는 작업에 대한 큐로 예약되어 있다.

 

 

 

대문자 이름의 큐에 추가된 작업은 batch의 작업처럼 처리된다.

 

 

 

atq에 큐 이름이 지정되면, 그 큐에 있는 작업들만 보여준다.

 

 

 

-m

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

 

 

 

-f file

표준 입력이 아닌 file 에서 작업 명령을 읽는다.

 

 

 

-l

atq와 동일

-d

atrm과 동일

-v

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

 

 

 

환경 변수 POSIXLY_CORRECT이 설정되어 있지 않으면 "1997-02-20 14:50" 형식으로 시간이 표시되고, 설정되어 있는 경우에는 "Thu Feb 20 14:50:00 1996" 형식이 될 것이다.

 

 

 

-c

명령행에 나열된 작업들을 표준 출력으로 보여준다.

 

 

 

 

 

 

 

설명

 

 

at의 사용

 

 

atPOSIX.2 표준까지 포함하여 매우 복잡한 시간 형식도 지정할 수 있다.

 

 

 

 

- 시간 지정 : 그 날의 특정 시간에 작업을 수행하기 위해 HH:MM 형식으로 시간을 지정한다. (만약 시간이 이미 지났다면 다음날로 생각한다. ) 그리고, midnight, noon, 또는 teatime (4pm) 같은 문자와 아침 또는 저녁을 나타내기 위해 AM 또는 PM과 같은 접미사를 사용할 수 있다.

 

 

 

- 날짜 지정 : 작업을 수행할 날짜에 대해서 월 일 년(month-name day year)” 형식으로 지정하거나 MMDDYY, MM/DD/YY DD.MM.YY 형식으로 지정할 수 있다.

 

 

 

날짜 지정은 반드시 시간 지정 다음에 나와야 한다.

 

 

 

- 시간을 now + count time-units 형식으로 지정 할 수 있으며, time-unitsminutes, hours, days 또는 weeks 가 될 수 있다.

 

 

 

- 오늘 수행할 작업에는 today, 내일 수행할 작업에는 tomorrow를 붙일 수 있다.

 

 

 

 

다음은 사용 예제이다.

 

 

 

 

 

- 지금부터 3일 동안 오후 4시에 작업을 수행 : at 4pm + 3 days [명령]

- 731일 오전 10:00에 작업을 수행 : at 10am Jul 31 [명령]

- 내일 오후 1시에 작업을 수행 : at 1am tomorrow [명령]

 

시간 지정에 대한 정확한 정의는 /usr/doc/at-*/timespec에 되어 있다.

 

 

 

 

명령 수행

 

atbatch 둘 다 표준 입력이나 -f 옵션으로 지정한 파일에서 명령을 읽어 수행한다.

 

 

 

작업 디렉토리, 환경 변수(TERM, DISPLAY_ 변수는 제외)umask는 호출 당시의 것이 유지된다.

 

 

 

su 쉘로부터 실행된 at - 또는 batch - 명령은 현재 사용자 ID를 유지할 것이다.

 

 

 

 

표준 에러나 표준 출력으로 출력되는 명령 수행 결과가 있다면 메일로 받게 된다.

 

 

 

메일은 /usr/sbin/sendmail 명령을 사용하여 보내진다.

 

 

 

만약 atsu 쉘에서 실행되었다면 로그인 쉘의 사용자가 메일을 받을 것이다.

 

 

 

 

사용 권한

 

수퍼 유저는 어떤 경우에도 이 명령들을 사용할 수 있으나 다른 사용자는 /etc/at.allow/etc/at.deny의 내용에 따라 사용 권한이 결정된다.

 

 

 

만약 /etc/at.allow 파일이 존재하면 그 파일에 명시된 사용자만이 at 명령을 사용할 수 있다.

 

 

 

그리고 만약 /etc/at.allow가 존재하지 않으면 /etc/at.deny에 명시되지 않은 모든 사용자가 at을 사용할 수 있다.

 

 

 

또한 두 파일 모두 존재하지만 파일의 내용이 없다면 모든 사용자가 at 사용이 가능하고, 만약 두 파일이 모두 존재하지 않으면 수퍼 유저만이 at을 사용할 수 있다.

 

 

 

 

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,153 명
  • 현재 강좌수 :  36,461 개
  • 현재 접속자 :  251 명