본문 바로가기

로그 저장소 :)/리눅스.Linux

리눅스 스케쥴링(Scheduling)



- 1회성 스케쥴링 명령어 : at
- 주기적 스케쥴링 명령어 : cron

예약 확인 :$atq or $at -l
예약 삭제 :$at -d 1 (Job Number)

- at명령은 root뿐 아니라 일반 계정으로도 사용가능하다.

※ at 및 cron 사용자 제한
 사용자가 1,000명 이상인 서버라고 가정 해 볼 경우 사용자 개개인이
모두 at을 사용한다면? 프로세스(ps)에 남기 때문에 과부하의 원인이 된다.


*관련파일
: /etc/at.allow, /etc/at.deny
             /etc/cron.allow, /etc/cron.deny


Ⅰ. /etc/cron.deny만 존재하는 경우
    : 기본적으로 모든 사용자 사용가능, cron.deny 파일에 명기된 사용자는 사용불가

Ⅱ. /etc/cron.allow만 존재하는 경우
     : cron.allow 파일에 명기된 사용자만 사용가능

Ⅲ. 두 파일 모두 존재하는 경우
     : cron.deny 파일에 상관없이 cron.allow 파일에 명기된 사용자만 사용가능

Ⅳ. 두 파일 모두 존재하지 않는 경우
     : 일반 사용자는 사용불가하고 root만 사용가능




- crontab 중요(별표 다섯개 돼지꼬리 땡땡)
#리눅스마스터, LPIC, RHCE 100% 출제

#vi /etc/crontab



#ls /etc/cron.*





$crontab -e  
=> vi가 실행됨

 분      시        일        월      요일      명령
0~59     0~23      1~31      1~12      0~7      



$crontab -l
=> 확인

예제)

1. 매주 금요일 밤 11:30 a.sh 실행(/home/neopark/a.sh)
30 23 * * 5 /home/neopark/a.sh

2. 매월 1일 오전 9:00 b.sh
0 9 1 * * b,sh

3. 홀수달 1일 오후 3시 c.sh
0 15 1 1,3,5,7,9,11(또는 1-12/2) * c.sh


- 해당 shell script의 퍼미션 꼭 확인할 것 (#chmod 755 a.sh)

$crontab -r
=> 삭제

$crontab -e -u 사용자ID 
=> 사용자ID의 croantab을 작성하거나 수정한다.


[활용]

[root@clients171 ~]# cat > aaa
0 10 * * 1 find / -name '*.txt' 2>/dev/null > /home/neopark/list.txt
20 11 * * 1-5 find /home/neopark -name '*.bak' -exec rm -rf {} |;

[root@clients171 ~]# crontab -l
no crontab for root

[root@clients171 ~]# crontab aaa

[root@clients171 ~]# crontab -l
0 10 * * 1 find / -name '*.txt' 2>/dev/null > /home/neopark/list.txt
20 11 * * 1-5 find /home/neopark -name '*.bak' -exec rm -rf {} |;

'로그 저장소 :) > 리눅스.Linux' 카테고리의 다른 글

Linux 도움말  (0) 2009.07.30
가상메모리(Swap)  (0) 2009.07.28
Linux Network Setting  (0) 2009.07.27
Linux Mount(unmount) & File System  (0) 2009.07.27
LVM  (0) 2009.07.24