명령어나 스크립트의 실행을 예약한다.
at는 등록된 명령어를 원하는 시간에 실행하게 하는 기능을 한다. 즉 시스템의 부하가 적은 시간에 실행시키거나 예약된 시간에 꼭 실행되어야 하는 작업을 자동으로 처리 하고자 할 때 사용한다.
at에 의해 실행할 시간설정
예약 작업 기능이므로 시간에 대한 설정이 중요하다. at의 시간 설정은 날짜와 시간을 정해주는 시간 설정과 현재 시간 혹은 정해진 시간에서 증가시간으로 설정해 주는 방법이 있다.
시간표현 방법
[시간]
hh:mm -hh(시간), mm(분)으로 설정 ex)16:18
am, pm -표시가 없는 경우 Linux나 Unix에서는 하루를 24시간으로 표현한다. am과 pm을 이용하여 12시간 단위로 표현이 가능하다. ex)4:18pm
midnight, noon, teatime, now -midnight(00:00), noon(12:00), teatime (16:00) 같은 서술형 시간으로도 지정이 가능하다, now는 현재시간이며 증가시간 설정에 많이 쓰인다.
[날짜]
yyyy-mm-dd -일반적인 날짜구성으로 표현 ex)2002-4-13
month num -4월13일은 "April 13"로 표현한다. 혹은 약자로 "Apr 13"로 표현할수 있다. ex)April 13
today, tomorrow -오늘 또는 내일로 지정할 수 있다. 각 요일별로도 표현이 가능하다.
test1 파일을 만들어주는 명령어인 tocuh test1이란 명령어를 at에 등록하여 2002년 4월 13일 0시에 실행한다. 2002년 4월 13일 0시는 "00:00 2002-04-13" 또는 "midnight April 13"등으로 시간을 표현해 줄 수 있다.
예약된 작업 확인
at에 예약된 작업정보
작업번호 20 날짜 2002-04-13 시간 00:00 이름 a 사용자 root
.작업번호 : at에 등록 된 작업 번호, 등록된 순서로 매겨지며 at -d, 또는 atrm을 이용해 at작업을 삭제해 줄 때 사용
.날짜/시간 : 등록된 명령이 실행 될 시간
.queue 이름 : "-q"옵션을 이용하여 큐 이름을 지정
.사용자 : at에 작업을 예약한 사용자
증가시간을 이용한 설정
현재시간으로부터 6시간 후에 Control.sh 스크립트가 실행 되도록 예약하고 싶다면 다음과 같이 f 옵션을 사용하여 예약 자업으로 등록한다.
또한 리다이렉션을 이용해도 같은 결과를 얻을 수 있다.
예약된 작업을 확인해 보자.
20번 예약된 작업을 삭제하고 싶다면 다음과 같이 삭제할 작업번호를 지정한다.
20번에 예약된 작업이 취소 된 것을 확인할 수 있다.
at의 사용 권한 설정
at 명령어는 at.allow와 at.deny 두 파일을 이용해 일반 사용자의 at 명령어 사용 권한을 지정해 줄 수 있다.
/etc/at.allow 파일이 있으면 at.allow에 기록된 사용자만 at 명령어를 사용이 가능하며 /etc/at.allow 파일이 없으면 /etc/at.deny에 기록이 안 된 사용자 만 사용이 가능하다. 두 파일 모두 없다면 관리자만 사용할 수 있다.
[관련 명령어]
atq 예약된 작업 목록을 보여준다
atrm 예약된 작업 목록을 삭제한다
batch 시스템 부하가 일정 이하일 때 명령을 실행한다.
cron 정기적으로 예약된 작업을 수행한다.
사용법 : at [옵션]시간 [날짜][+증가시간] 시간 : 명령어나 스크립트를 실행할 시간을 지정한다. +증가시간 : 증가 시간만큼 지난 후 실행한다. -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(분)으로 설정 ex)16:18
am, pm -표시가 없는 경우 Linux나 Unix에서는 하루를 24시간으로 표현한다. am과 pm을 이용하여 12시간 단위로 표현이 가능하다. ex)4:18pm
midnight, noon, teatime, now -midnight(00:00), noon(12:00), teatime (16:00) 같은 서술형 시간으로도 지정이 가능하다, now는 현재시간이며 증가시간 설정에 많이 쓰인다.
[날짜]
yyyy-mm-dd -일반적인 날짜구성으로 표현 ex)2002-4-13
month num -4월13일은 "April 13"로 표현한다. 혹은 약자로 "Apr 13"로 표현할수 있다. ex)April 13
today, tomorrow -오늘 또는 내일로 지정할 수 있다. 각 요일별로도 표현이 가능하다.
test1 파일을 만들어주는 명령어인 tocuh test1이란 명령어를 at에 등록하여 2002년 4월 13일 0시에 실행한다. 2002년 4월 13일 0시는 "00:00 2002-04-13" 또는 "midnight April 13"등으로 시간을 표현해 줄 수 있다.
# at 00:00 2002-04-13 at>touch test1 at><ctrl+d>
예약된 작업 확인
# at -l 20 2002-04-13 00:00 a root
at에 예약된 작업정보
작업번호 20 날짜 2002-04-13 시간 00:00 이름 a 사용자 root
.작업번호 : 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 : 리다이렉션을 이용한 예약작업 등록
예약된 작업을 확인해 보자.
# at -l :예약된 작업 확인 20 2002-04-13 00:00 a root 21 2002-04-12 18:00 a root
20번 예약된 작업을 삭제하고 싶다면 다음과 같이 삭제할 작업번호를 지정한다.
# at -d 20 # at -l 21 2002-04-12 18:00 a root
20번에 예약된 작업이 취소 된 것을 확인할 수 있다.
at의 사용 권한 설정
at 명령어는 at.allow와 at.deny 두 파일을 이용해 일반 사용자의 at 명령어 사용 권한을 지정해 줄 수 있다.
/etc/at.allow 파일이 있으면 at.allow에 기록된 사용자만 at 명령어를 사용이 가능하며 /etc/at.allow 파일이 없으면 /etc/at.deny에 기록이 안 된 사용자 만 사용이 가능하다. 두 파일 모두 없다면 관리자만 사용할 수 있다.
[관련 명령어]
atq 예약된 작업 목록을 보여준다
atrm 예약된 작업 목록을 삭제한다
batch 시스템 부하가 일정 이하일 때 명령을 실행한다.
cron 정기적으로 예약된 작업을 수행한다.