카테고리 없음2013. 6. 18. 09:44

 

26장. cron, at, anacron

 

 

학습목표

- 반복되는 작업과 예약작업을 수행하기 위한 명령어의 사용법을 익힌다.

 

 

● cron

- 주기적으로 반복되는 작업을 수행

- crond 라는 데몬으로 작동 (기본 설치됨)

 

 

 

● 사용자별 crontab 설정

- 일반 사용자의 자기 홈디렉토리 백업등의 용도로 사용

- vi 편집기가 구동됨

- 명령어

   → 편집 : # crontab -e

   → 확인 : # crontab -l

   → 삭제 : # crontab -r

- /var/spool/cron/ 사용자명으로 저장됨

 

 

● at

- 일시적으로 한번만 수행되는 작업을 예약

- atd 라는 데몬으로 작동

- 명령어

   → 예약 : # at <시간>

      ☞ 예) # at 3:00am tomorrow -> 내일 새벽 3시

      ☞      # at 11:00pm January 30 -> 1월 30일 오후 11시

      ☞      # at now + 1 hours -> 1시간 후

   → at> 프롬프트에 예약 명령어 입력 후, Enter

   → 완료되면 Ctrl + d

   → 확인 : # at -l

   → 취소 : # atrm <작업번호>

 

 

● anacron

- cron과 유사하지만, 시스템이 꺼져있을 경우 있으면 해당작업이 정해진 시간에

   수행되었는지를 확인하고 수행한 적이 없으면 실행

- /etc/anacrontab 파일로 저장

 

 

 

 

[실습]

 

● crontab 설정

● at 설정

● anacron 설정

 

 


 

/etc/crontab 파일에는 기본적으로

시간별, 일별, 주별, 월별로 설정이 다 되어있다.

 

 


 

< crontab 설정 >

 

 


vi /etc/crontab

 

 

 

분 시 일 월 주 root run-parts /etc/cron.*

 

01 * * * * root run-parts /etc/cron.hourly

 

매 시간 1분마다 실행

 

02 4 * * * root run-parts /etc/cron.daily

 

매일 4시 2분에 실행

 

22 4 * * 0 root run-parts /etc/cron.weekly

 

매주 일요일 4시 22분에 실행

 

42 4 1 * * root run-parts /etc/cron.monthly

 

매월 1일 4시 42분에 실행

 

 

 

ls /etc/cron.daily

 

기본적으로 매일 실행되는 실행파일들을 볼 수 있다.

 

cd /etc/cron.daily

 

touch abc.sh

 

vi abc.sh

 

/etc/cron.daily 폴더로 이동해서

abc.sh 이란 쉘 파일을 만들어보자.

아직 쉘은 배우진 않았지만 따라하면서 해본다.

 

 


 

위와 같은 아주 간단한 프로그램으로 설정

 



 

ls -l 명령으로 확인해보면 abc.sh 파일이 생성되었다.

하지만 실행할 수 있는 권한이 없기 때문에 권한을 수정한다.

 

chmod a+x abc.sh

 

a+x는 모든 유저에게 실행할 수 있는 권한을 부여한 것이다.

 


 

cat /etc/crontab

 

현재 지정한 저 시간

매일 4시 02분이 되면 자동적으로 abc.sh 파일이 실행되게 된다.

시간을 바꾸고싶으면 저 부분을 수정하면 된다.

 

 

 

 

< at 설정 >

 

 

 

at 3:00am tomorrow

 

내일 새벽 3시에 작업할 내용을 예약한다.

프롬프트가 at> 으로 바뀌면 예약할 명령을 입력하면 된다.

 

예를 들어서 /root/aa.dat 파일을 bb.dat 파일로 복사해야한다고 하자.

 

at> cp /root/aa.dat bb.dat

at> Ctrl + D                     

 

모든 작업이 다 끝났으면 Ctrl + D를 눌러 빠져나온다.

 

그리고 예약작업을 확인하려면 at -l 명령을 내리고

예약한 작업을 삭제하려면 atrm <작업번호> 명령을 내린다.

여기선 atrm 1 이다.

 

 

 

< anacron 설정 >



 

 

cat /etc/anacrontab

 

 65   cron.daily   run-parts   /etc/cron.daily

 

컴퓨터가 꺼져있어도 다시 켰을때

매일 /etc/cron.daily에 있는 실행파일들이 실행되었는지 체크를 하고

실행이 안되어있는 경우에는 65분 후에 실행

 

7   70   cron.weekly   run-parts   /etc/cron.weekly

 

마찬가지로 매주 /etc/cron.weekly에 있는 실행파일들이 실행되었는지 체크를 하고

실행이 안되어있는 경우에는 70분 후에 실행

 

30   75   cron.monthly   run-parts   /etc/cron.monthly

 

매월 /etc/cron.monthly에 있는 실행파일들이 실행되었는지 체크를 하고

실행이 안되어있는 경우에는 75분 후에 실행

 

Posted by 아이맥스