리눅스 at 데몬 (작업스케줄 예약 데몬)

at 데몬은 어떤 명령을 연속적으로 실행하는 경운에 사용하는 작업 스케줄 예약 데몬이면, 일반적으로 root 유저만 사용 가능하다.

1. at 데몬 사용법
at 데몬(atd)을 사용하기 위해서는 at, atq, atrm, batch 명령에 대해서 알아야 한다.

* at, atq, atrm
이 명령어는 실제적으로 atd 데몬에 명령어를 내리는 명령어로 명령행에는 언제 실행할 것인지 그리고 무슨 옵션으로 실행할 것인지에 대한 옵션이 있고, 명령어를 엔터를 쳐서 입력하면 커서가 한 줄 밑으로 내려가게 되는데 여기서 실행할 명령을 순서대로 하나씩 쳐서 입력한 뒤에 다 끝나면 [Ctrl]+[D] 를 눌러서 나가면 된다.

사용예
실제 명령은 아래와 같이 "at + 실행할 시간"으로 명령을 내리면 at>라는 프롬프트가 뜨는데 여기서 부터 실제 내릴 명령을 게속적으로 써주면 된다.


[root@systech-dev /root]# at 21:00 2012-11-28
at> find / -name *linux* -print
at> tee ~/linux.txt
at> <EOT>    <-------실제로는 [Ctrl]+[D] 이다.
job 1 at 2012-11-28 21:00


21:00 2012-11-28에 아래에 타이핑한 명령어를 실행
job1 에 할당되었다고 보여주고 있음

또 다른 예

[root@systech-dev /root]# at now +2 hours
at> find / -name *.html -print
at> tee ~/html.txt
at> mount -t vfat /dev/hda1 /mnt/win98_c
at> cp ~/html.txt /mnt/win98_c/
at> <EOT>
job 2 at 2012-11-28 23:00

지금부터 2시간 후에 아래 명령들을 실행
hours 대신에 minutes, days, week 등이 쓰일 수 있으며, 그냥 at now 라고 쓰면 모든 명령을 입력한 수 [Ctrl]+[D] 를 입력하는 즉시 실행한다.

이러한 atd 데몬은 쉘스크립트 내에서 아주 유용하게 사용되어 질 수 있는데, 만약 어떤 쉘스크립트의 마지막 부분에 "at -m -f $0 now + 3 days" 라고 써주게 되면 해당 쉘스크립트를 매번 3일 마다 실행하게 되며, 그 결과를 메일로도 알려주게 된다.


이제 이렇게 예약된 작업내용(큐:queue)을 보려면 at 명령에 -l 옵션을 주거나 atq 명령을 쓰면 된다.

[root@systech-dev /root]# at -l
3       2012-11-28 22:00 a root
2       2012-11-28 23:00 a root

[root@systech-dev /root]# atq
3       2012-11-28 22:00 a root
2       2012-11-28 23:00 a root

*큐에 있는 작업 내용을 삭제하려면...
[root@systech-dev /root]# atrm 3
[root@systech-dev /root]# atq
2       2012-11-28 23:00 a root




2. batch 

batch 명령은 at와  사용법이 같다.




[root@systech-dev /root]# batch
at> find / -name *.html -print
at> tee ~/html.txt
at> mount -t vfat /dev/hda1 /mnt/win98_c
at> cp ~/html.txt /mnt/win98_c
at> <EOT>
job 4 at 2012-11-28 21:08



[root@systech-dev /root]# atq
5       2012-11-28 21:10 b root


[root@systech-dev /root]# atrm 5
[root@systech-dev /root]# atq


3. at 사용 유저 제한
이러한 atd 데몬을 아무 유저나 마음데로 쓰게 된다면 시스템에 많은 부하가 걸릴 수 있으므로 사용유저를 제한 할 필요가 있는데 이때 사용되는 파일이 /etc/at.allow 와 /etc/at.deny 파일이다.
보통 둘 중 하나의 파일만 사용하며, /etc/at.allow 파일을 먼저 읽게 된다. /etc/at.allow 파일에 특정 유저명을 적어 넣으면 그 유저들을 제외한 나머지 유저는 at를 사용할 수 없으며, /etc/at.deny 는 반대이다.






댓글 없음:

댓글 쓰기

깔끔 테마. Powered by Blogger.