최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
| {{소문자}}
| | ;at |
| ;at, atq, atrm
| | ;앳 |
| ;/usr/bin/at | |
| ;/usr/bin/atq | |
| ;/usr/bin/atrm
| |
|
| |
|
| ;atd | | ;atd |
| ;/usr/sbin/atd
| |
| ;앳데몬, 앳D | | ;앳데몬, 앳D |
|
| |
|
| ==at== | | ==at== |
| * 1회 작업 예약 리눅스 명령어
| |
| * 지정한 명령어를 지정한 시각에 1회 실행하도록 하는 리눅스 명령어 | | * 지정한 명령어를 지정한 시각에 1회 실행하도록 하는 리눅스 명령어 |
| * 시간이 되면 수행되고 목록에서 사라진다.
| |
|
| |
| ===명령어 예시===
| |
| * 예약작업 등록
| |
| <source lang='bash'>
| |
| echo "명령어" | at 00:00 0000-00-00
| |
| echo "명령어" | at 00:00
| |
| at 0000-00-00 00:00 -f 스크립트.sh
| |
| at 0000-00-00 00:00 < 스크립트.sh
| |
| </source>
| |
| * 목록 확인
| |
| <source lang='bash'>
| |
| atq
| |
| at -l
| |
| </source>
| |
| * 예약작업 내용 확인
| |
| <source lang='bash'>
| |
| at -c 번호
| |
| </source>
| |
| * 작업 삭제
| |
| <source lang='bash'>
| |
| atrm 번호
| |
| at -d 번호
| |
| at -r 번호
| |
| </source>
| |
| * /etc/at.deny 에 계정을 추가하여 at 사용을 금지시킬 수 있다.<ref>기본적으로 /etc/at.deny에는 내용이 없다.</ref>
| |
| :/etc/at.allow 파일을 만들면 그곳에 기록된 사용자 외에는 모두 금지된다.<ref>단, root는 무조건 허용됨. 기본적으로 /etc/at.allow은 존재하지 않는다.</ref>
| |
|
| |
|
| ==atd== | | ==atd== |
| *at 수행을 위한 데몬 | | *at 수행을 위한 데몬 |
| <source lang='console'> | | <source lang='dos'> |
| [root@zetawiki ~]# service atd status | | [root@jmnote ~]# service atd status |
| atd (pid 2205) is running... | | atd (pid 2205) is running... |
| </source> | | </source> |
|
| |
| ==실습 1: 명령어 등록==
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# ll /root/hello.txt
| |
| ls: /root/hello.txt: No such file or directory
| |
| [root@zetawiki ~]# date
| |
| Thu Feb 13 23:27:03 KST 2014
| |
| [root@zetawiki ~]# echo "echo hello > /root/hello.txt" | at 23:30 2014-02-13
| |
| job 3 at 2014-02-13 23:30
| |
| Can't open /var/run/atd.pid to signal atd. No atd running?
| |
| </source>
| |
| :→ 3번 작업으로 등록됨. 그런데 atd가 작동중이 아님
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# atq
| |
| 3 2014-02-13 23:30 a root
| |
| [root@zetawiki ~]# service atd start
| |
| Starting atd: [ OK ]
| |
| </source>
| |
| :→ atd가 작동중이어야 atq 예약작업이 수행된다.
| |
| :→ 여기서 a는 at에 의해 등록되었음을 나타낸다.<ref>batch 명령어에 의해 등록된 경우는 b로 표시됨</ref>
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# date
| |
| Thu Feb 13 23:31:53 KST 2014
| |
| [root@zetawiki ~]# atq
| |
| [root@zetawiki ~]# ll /root/hello.txt
| |
| -rw-r--r-- 1 root root 6 Feb 13 23:30 /root/hello.txt
| |
| </source>
| |
| :→ 23:30에 hello.txt 생성됨. atq 목록에서 사라짐<ref>atd가 작동중이 아니라면 예약작업이 수행되지 않으며, atq 목록에 계속 남아있게 된다.</ref>
| |
|
| |
| ==실습 2: 스크립트 등록==
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# cat hello.sh
| |
| #!/bin/bash
| |
| echo hello
| |
| </source>
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# at now + 4 hour -f hello.sh
| |
| job 6 at 2014-05-28 03:03
| |
| </source>
| |
| <source lang='console'>
| |
| [root@zetawiki ~]# at -c 6
| |
| ... (생략)
| |
| SSH_CONNECTION=192.168.0.3\ 3224\ 192.168.0.39\ 22; export SSH_CONNECTION
| |
| LESSOPEN=\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
| |
| G_BROKEN_FILENAMES=1; export G_BROKEN_FILENAMES
| |
| cd /root || {
| |
| echo 'Execution directory inaccessible' >&2
| |
| exit 1
| |
| }
| |
| ${SHELL:-/bin/sh} << 'marcinDELIMITER38a2cae9'
| |
| #!/bin/bash
| |
| echo hello
| |
|
| |
| marcinDELIMITER38a2cae9
| |
| </source>
| |
| :→ 환경변수([[env]])가 모두 export되고 스크립트 파일의 내용이 덧붙여진다.
| |
|
| |
|
| ==같이 보기== | | ==같이 보기== |
| *[[리눅스 반복 예약작업 cron]] | | *[[크론]] |
| *[[윈도우 at]]
| |
| *[[리눅스 batch]]
| |
| *[[env]]
| |
| *[[at.allow, at.deny]]
| |
| | |
| ==주석==
| |
| <references/>
| |
|
| |
|
| ==참고== | | ==참고 자료== |
| *https://en.wikipedia.org/wiki/At_(Unix) | | *https://en.wikipedia.org/wiki/At_(Unix) |
|
| |
|
| [[분류: 리눅스]] | | [[분류: 리눅스]] |