블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

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
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함