at 와 crond 명령어
1. at
특정 시간에 특정 job을 자동으로 실행하고자 할 때 사용
at [-m] [-r job] [-t time] [date]
-m : job 이 끝난 후 사용자에게 메일을 보냄
-r : queue 에서 전에 스케쥴되었던 job을 제거
-t time : 명령어를 실행할 시간 지정
date : 명령어를 실행할 날짜 지정
# date
Wed Mar 4 10:16:32 KST 2009
#
# at 10:16 am 2009-03-05 // 2009년 3월 5일 오전 10시 16분에 at 작업 등록
at> touch /mylinux/attest1
at> <EOT> // ^D
job 4 at 2009-03-05 10:16
#
# at 15:00 2009-03-05 // 2009년 3월 5일 오후 3시에 at 작업 등록
at> touch /mylinux/attest2
at> <EOT>
job 5 at 2009-03-05 15:00
#
# atq // at 작업 확인
5 2009-03-05 15:00 a root
4 2009-03-05 10:16 a root
#
# at -r 4 // at 작업 중 4번 작업 삭제
# atq
5 2009-03-05 15:00 a root
#
# atrm 5 // at 작업 중 5번 작업 삭제. at -r 과 동일
# atq
#
/etc/at.deny (솔라리스에선 /etc/cron.d/at.deny)
at를 실행하는 사용자를 제한할 수 있다.
at.deny 에 등록된 사용자가 at 를 사용할 경우 다음의 메시지를 뿌리며 사용을 제한한다.
$ at 10:00 pm
You do not have permission to use at.
/etc/at.allow (/etc/cron.d/at.allow)
이 파일은 존재하진 않지만 root가 이 파일을 만들어 특정 사용자에게만 at를 실행할 수 있도록 할 수 있다.
at.allow, at.deny 가 둘다 존재할 경우 at.allow를 먼저 읽은 후 at.deny를 읽는다.
at.deny, at.allow 파일 둘다 존재하지 않을 경우 root 만이 at 작업을 실행할 수 있다.
2. crond
일정한 시간에 정기적인 작업을 수행하고자 할 때 사용
6개의 필드로 구성되어 있으며 각 필드는 Spacebar 나 tab으로 구분
minute hour day month weekday command
-> 10 3 * * 0 /usr/lib/newsyslog
-> 매주 일요일 3시 10분에 /usr/lib/newsyslog 실행
minute : 0-59 | hour : 0-23 | day : 1-31 | month : 1-12, January-December | weekday : 0-6 (0 : sunday)
# crontab -e // crontab 을 추가하기 위해 실행
no crontab for root - using an empty one
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
crontab: installing new crontab
#
# crontab -l // 등록된 crontab 확인
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
#
# vi /var/spool/cron/root // 등록한 crontabl 이 저장된 파일. 개별적으로 crontab을 지울 땐 여기서 지우면 된다.
30 * * * * echo "crontab test no 1" > /mylinux/crontest
30 */2 1-10 3,4,5 * echo "crontab test no 2" >> /mylinux/crontest
# crontab -r // 등록된 crontab 을 모두 삭제
# crontab -l
no crontab for root
/etc/cron.deny (솔라리스 : /etc/cron.d/cron.deny)
root 가 /etc/cron.allow 파일을 만들어 특정 사용자에게 crontab 명령을 실행할 수 있도록 제한할 수 있다.
cron.deny 파일이 비어 있고, cron.allow 파일이 없다면 모든 사용자에게 crontab 을 허용하게 된다.
# vi /etc/crond.deny
ikssun
wq!
# su ikssun
$ crontab -e
You (ikssun) are not allowed to use this program (crontab)
See crontab(1) for more information
만약 crontab 을 아무 인수(-e, -l, -r) 없이 실행했을 경우 ctrl+c 를 눌러 종료해야 한다.
ctrl+d 를 눌러 종료했을 경우 기존의 crontab 파일이 빈 파일로 overwrite 되기 때문이다.
[출처] [Linux] at 와 crond|작성자 토토로
'리눅스 > 리눅스명령어' 카테고리의 다른 글
sysctl 명령어 (2) | 2012.02.15 |
---|---|
insmod, rmmod, lsmod, modprobe (3) | 2012.02.14 |
test 명령어 (3) | 2012.02.14 |
grep 명령어 와 활용 (7) | 2012.02.13 |
ln 명령어 심볼릭,하드 (4) | 2012.02.13 |