"리눅스 1회성 예약작업 at, atd"의 두 판 사이의 차이

잔글 (봇: 자동으로 텍스트 교체 (-==참고 자료== +==참고==))
 
(사용자 2명의 중간 판 22개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{소문자}}
{{소문자}}
;at
;at, atq, atrm
;/usr/bin/at
;/usr/bin/at
;
;/usr/bin/atq
;/usr/bin/atrm


;atd
;atd
9번째 줄: 10번째 줄:


==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'>
<source lang='bash'>
atq
atq
at -l
at -l
</source>
</source>
* 예약작업 취소 명령어
* 예약작업 내용 확인
<source lang='bash'>
at -c 번호
</source>
* 작업 삭제
<source lang='bash'>
<source lang='bash'>
atrm 번호
atrm 번호
22번째 줄: 37번째 줄:
at -r 번호
at -r 번호
</source>
</source>
* /etc/at.deny 에 계정을 추가하여 at 사용을 금지시킬 수 있다.
* /etc/at.deny 에 계정을 추가하여 at 사용을 금지시킬 수 있다.<ref>기본적으로 /etc/at.deny에는 내용이 없다.</ref>
:/etc/at.allow 파일을 만들면 그곳에 기록된 사용자 외에는 모두 금지된다.<ref>단, root는 무조건 허용됨</ref>
:/etc/at.allow 파일을 만들면 그곳에 기록된 사용자 외에는 모두 금지된다.<ref>단, root는 무조건 허용됨. 기본적으로 /etc/at.allow은 존재하지 않는다.</ref>


==atd==
==atd==
*at 수행을 위한 데몬
*at 수행을 위한 데몬
<source lang='dos'>
<source lang='console'>
[root@jmnote ~]# service atd status
[root@zetawiki ~]# service atd status
atd (pid  2205) is running...
atd (pid  2205) is running...
</source>
</source>


==실습==
==실습 1: 명령어 등록==
<source lang='dos'>
<source lang='console'>
[root@jmnote ~]# ll /root/hello.txt
[root@zetawiki ~]# ll /root/hello.txt
ls: /root/hello.txt: No such file or directory
ls: /root/hello.txt: No such file or directory
[root@jmnote ~]# date
[root@zetawiki ~]# date
Thu Feb 13 23:27:03 KST 2014
Thu Feb 13 23:27:03 KST 2014
[root@svn0 ~]# echo "echo hello > /root/hello.txt" | at 2330 feb 13
[root@zetawiki ~]# echo "echo hello > /root/hello.txt" | at 23:30 2014-02-13
job 3 at 2014-02-13 23:30
job 3 at 2014-02-13 23:30
Can't open /var/run/atd.pid to signal atd. No atd running?
Can't open /var/run/atd.pid to signal atd. No atd running?
</source>
</source>
:→ 3번 작업으로 등록됨.  그런데 atd가 작동중이 아님
:→ 3번 작업으로 등록됨.  그런데 atd가 작동중이 아님
<source lang='dos'>
<source lang='console'>
[root@jmnote ~]# atq
[root@zetawiki ~]# atq
3 2014-02-13 23:30 a root
3 2014-02-13 23:30 a root
[root@jmnote ~]# service atd start
[root@zetawiki ~]# service atd start
Starting atd:                                              [  OK  ]
Starting atd:                                              [  OK  ]
</source>
</source>
:→ atd가 작동중이어야 atq 예약작업이 수행된다.
:→ atd가 작동중이어야 atq 예약작업이 수행된다.
<source lang='dos'>
:→ 여기서 a는 at에 의해 등록되었음을 나타낸다.<ref>batch 명령어에 의해 등록된 경우는 b로 표시됨</ref>
[root@jmnote ~]# date
<source lang='console'>
[root@zetawiki ~]# date
Thu Feb 13 23:31:53 KST 2014
Thu Feb 13 23:31:53 KST 2014
[root@jmnote ~]# atq
[root@zetawiki ~]# atq
[root@jmnote ~]# ll /root/hello.txt
[root@zetawiki ~]# ll /root/hello.txt
-rw-r--r-- 1 root root 6 Feb 13 23:30 /root/hello.txt
-rw-r--r-- 1 root root 6 Feb 13 23:30 /root/hello.txt
</source>
</source>
:→ 23:30에 hello.txt 생성됨. atq 목록에서 사라짐<ref>atd가 작동중이 아니라면 예약작업이 수행되지 않으며, atq 목록에 계속 남아있게 된다.</ref>
:→ 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]]
*[[윈도우 at]]
*[[리눅스 batch]]
*[[리눅스 batch]]
*[[env]]
*[[at.allow, at.deny]]


==주석==
==주석==
<references/>
<references/>


==참고 자료==
==참고==
*https://en.wikipedia.org/wiki/At_(Unix)
*https://en.wikipedia.org/wiki/At_(Unix)


[[분류: 리눅스]]
[[분류: 리눅스]]

2017년 7월 11일 (화) 03:29 기준 최신판

at, atq, atrm
/usr/bin/at
/usr/bin/atq
/usr/bin/atrm
atd
/usr/sbin/atd
앳데몬, 앳D

1 at[ | ]

  • 1회 작업 예약 리눅스 명령어
  • 지정한 명령어를 지정한 시각에 1회 실행하도록 하는 리눅스 명령어
  • 시간이 되면 수행되고 목록에서 사라진다.

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
  • 목록 확인
atq
at -l
  • 예약작업 내용 확인
at -c 번호
  • 작업 삭제
atrm 번호
at -d 번호
at -r 번호
  • /etc/at.deny 에 계정을 추가하여 at 사용을 금지시킬 수 있다.[1]
/etc/at.allow 파일을 만들면 그곳에 기록된 사용자 외에는 모두 금지된다.[2]

2 atd[ | ]

  • at 수행을 위한 데몬
[root@zetawiki ~]# service atd status
atd (pid  2205) is running...

3 실습 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]

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되고 스크립트 파일의 내용이 덧붙여진다.

5 같이 보기[ | ]

6 주석[ | ]

  1. 기본적으로 /etc/at.deny에는 내용이 없다.
  2. 단, root는 무조건 허용됨. 기본적으로 /etc/at.allow은 존재하지 않는다.
  3. batch 명령어에 의해 등록된 경우는 b로 표시됨
  4. atd가 작동중이 아니라면 예약작업이 수행되지 않으며, atq 목록에 계속 남아있게 된다.

7 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}