- at, atq, atrm
- /usr/bin/at
- /usr/bin/atq
- /usr/bin/atrm
- atd
- /usr/sbin/atd
- 앳데몬, 앳D
at
- 1회 작업 예약 리눅스 명령어
- 지정한 명령어를 지정한 시각에 1회 실행하도록 하는 리눅스 명령어
- 시간이 되면 수행되고 목록에서 사라진다.
명령어 예시
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
atrm 번호
at -d 번호
at -r 번호
- /etc/at.deny 에 계정을 추가하여 at 사용을 금지시킬 수 있다.[1]
- /etc/at.allow 파일을 만들면 그곳에 기록된 사용자 외에는 모두 금지된다.[2]
atd
[root@zetawiki ~]# service atd status
atd (pid 2205) is running...
실습 1: 명령어 등록
[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?
- → 3번 작업으로 등록됨. 그런데 atd가 작동중이 아님
[root@zetawiki ~]# atq
3 2014-02-13 23:30 a root
[root@zetawiki ~]# service atd start
Starting atd: [ OK ]
- → atd가 작동중이어야 atq 예약작업이 수행된다.
- → 여기서 a는 at에 의해 등록되었음을 나타낸다.[3]
[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
- → 23:30에 hello.txt 생성됨. atq 목록에서 사라짐[4]
실습 2: 스크립트 등록
[root@zetawiki ~]# cat hello.sh
#!/bin/bash
echo hello
[root@zetawiki ~]# at now + 4 hour -f hello.sh
job 6 at 2014-05-28 03:03
[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
- → 환경변수(env)가 모두 export되고 스크립트 파일의 내용이 덧붙여진다.
같이 보기
주석
- ↑ 기본적으로 /etc/at.deny에는 내용이 없다.
- ↑ 단, root는 무조건 허용됨. 기본적으로 /etc/at.allow은 존재하지 않는다.
- ↑ batch 명령어에 의해 등록된 경우는 b로 표시됨
- ↑ atd가 작동중이 아니라면 예약작업이 수행되지 않으며, atq 목록에 계속 남아있게 된다.
참고