'at'에 해당되는 글 1건

  1. 2007/05/18 작업 스케줄러에 작업목록 등록
2007/05/18 10:48

작업 스케줄러에 작업목록 등록

■ at

   → 지정한 시간에 원하는 명령을 실행될수 있도록 해준다.

       지정한 작업은 queue(큐)에 저장되며 저장된 작업들은 /var/spool/at 디렉토리 아래

       파일로 저장된다. 보통 한번 실행되는 경우에 사용된다.

       기본적으로 결과는 사용자의 메일로 전송된다.

   ♠ option

      -q queue : 작업의 대기큐를 지정한다. 사용할수 있는 큐는  a-z, A-Z까지이다.

                     지정하지않으면 기본큐로 a를 사용한다.

     -c job : 작업리스트를 출력한다.

     -d : 작업을 삭제한다.(=atrm)

     -l : 큐에 있는 작업들을 보여준다. root 인경우에는 모든 작업들의 목록을 보여준다.(=atq)

     -m : 실행한 결과를 메일로 통보해준다.

       
♠ 시간 표기법

                시간지정은 HHMM, HH:MM형태로 가능하고 am,pm 으로 구분가능하다.

               am,pm 등의 표기가 없을 경우에는 24시 표현으로 한다.

               날짜의 경우는 MMDDYY, MM/DD/YY, MM.DD.YY 형태로 나타낸다.

               now (현재시간), tomorrow(내일), today(오늘), teatime(16:00),noon(12:00)

               midnight(00:00)과 같은 문자열도 가능하다.

               특히 now 는 + 증가시간설정에 많이 사용되는데

               +10minute , +1hour , +3hours 등으로 표기가능하다.

 
   ♠ 예

      1.[root@linux root]#at 1:40am tomorrow             //다음날 오전 1:40분에 실행하게한다.

         at>ls -al > list.txt                                        // ls -al 의결과를 list.txt 화일에 저장

         at>                                                           //중단할때 CTRL + D 를 누른다. 

         job 3 at 2005-09-02 01:40

      2.[root@linux root]#at -l                                //atq 와 같다.

         3       2005-09-02 01:40 a root                      //예약된 작업리스트 출력

      3,[root@linux root]#at now + 3hours               //3시간후에 작업예약한다.

      4.[root@linux root]#at midnight + 10minutes     

              // 자정 + 10분 즉 00 : 10 분에 작업을 예약한다.

      5.[root@linux root]#at 6 am Thursday

              // 돌아오는 목요일 오전 6시에 작업을 예약한다.

 
   ♠ 관련 명령어

        1.atq

             :큐에 저장된 작업들을 보여주는 명령, at -l 실행결과와 같다.

              작업번호와 작업예정시간, 작업이 저장되어있는 큐를 보여준다.

         2.atrm

             :예약된 작업을 취소할때 사용하는 명령으로 큐에서 해당작업을 삭제한다.

               at -d 를 사용하는것과 같다.

 
    ♠ at 의 사용자 제한

           ※ /etc/at.allow (허가목록) 과 /etc/at.deny(거부목록) 을 참조하게된다.

             1./etc/at.deny 만 존재하는경우

                → 기본적으로 모든사용자가 사용가능하고 at.deny 에 등록된 사용자만

                     사용불가능하다.

             2./etc/at.allow 만 존재하는 경우

                 → at.allow 파일에 등록된 사용자만 사용가능하다.

             3. 두 파일 모두 없을경우

                 → 일반사용자는 불가능하고 root 만 사용가능하다.

             4. 두 파일 모두 있을경우

                 → at.deny 내용을 무시하고 at.allow 명기된 사용자만 사용가능하다.

■ CRON

   → 같은 작업을 주기적으로 반복할수 있도록 해준다.

       보통 /etc/rc.d/init.d/crond 데몬에 의해 실행된다.

       설정은 /usr/bin/crontab 명령어를 사용한다.

 
  ♠ 관련명령어 및 파일

        1.crontab

          ▶ cron작업을 설정하는 명령이다. 실행시키면 기본vi편집기가 실행된다.

          ▶ option

             -l   : 현재 crontab 에 의해 설정된 내용을 출력한다.

             -e  : crontab 의 내용을 작성하거나 수정한다.

             -r   : crontab 의 내용을 삭제한다.

             -u  :  root권한자가 해당사용자의 crontab 파일을 다룰때 사용한다.

           ▶ 예제

               [root@linux root]#crontab -l

                  → 작업목록을 보여준다.

               [root@linux root]#crontab -e -u bluetree

                  → bluetree 사용자의 crontab 을 작성하거나 수정한다.

                [root@linux root]#crontab aaa

                  → aaa 란 파일을 crontab 으로 사용한다.

                      aaa 에는 이미 crontab 형식에 맞에 입력되어 있어야한다.

            ▶ crontab 의 작업형식

                  → 5개의 날짜필드와 1개의 명령필드로 구성되어있다.

         
                    MM HH DD mm d  command

                     MM : 분을 의미한다 ( 0 ~ 59까지 사용)

                     HH  :  시를 의미한다. ( 0 ~ 23 까지 사용)

                     DD   :  날짜를 의미한다 ( 1 ~ 31까지 사용)

                     mm  : 달을 의미한다.( 1 ~ 12까지 사용)

                     d     : 요일을 의미한다.( 0 ~ 7 까지 사용, 0 과 7은 일요일을 나타낸다)

                     command : 실행할 명령을 입력한다.

                   ※ 참고

                        위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할수 있고

                        각각의 요일을 구분할 때 ',' 를 사용하고 연일을 나타낼때는 '-'를 사용한다.

                        즉 월요일과 수요일은 '1,3' 월요일부터 금요일까지는 '1-5' 로 표시할수있다

 
       2./etc/crontab

            → 시스템이 정기적인 작업이 수행될수 있도록 기본적으로 설정되어있는 파일이다.


       3./var/spool/cron 디렉토리

            → 각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각 사용자이름으로 저장된다.


  ♠ crontab 내용 설정예


       0 12 * * 1-5 /home/bluetree/start

       → 월요일부터 금요일까지 /home/bluetree/start 란 스크립트를 실행시킨다.

 
       0 12 1 1-12/2 * /home/bluetree/babo

       → 1월부터 12월까지 2개월마다 /home/blutree/babo 란 화일을 실행시킨다.


       0 4 * * 1,3,5 cat /root/notice | mail -s "notice" bluetree75@naver.com

       → 월,수,금 오전 4시에 notice 라는 문서의 내용을 메일로 발송한다.


  ♠ cron 사용자 제한    

        ※ /etc/cron.allow (허가목록) 과 /etc/cron.deny(거부목록) 을 참조하게된다.

             1./etc/cron.deny 만 존재하는경우

                → 기본적으로 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만

                     사용불가능하다.

             2./etc/cron.allow 만 존재하는 경우

                 → cron.allow 파일에 등록된 사용자만 사용가능하다.

             3. 두 파일 모두 없을경우

                 → 모든 사용자가가능하다

             4. 두 파일 모두 있을경우

                 → cron.deny 내용을 무시하고 cron.allow 명기된 사용자만 사용가능하다  


* 등록된 리스트 확인
ex);
 crontab -l
#매일 6시 proframe/pfm/classes의 클래스 파일을 jar로 묶음
0 6 * * * /FRW/package/wraplib/wrapjar.sh

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 Comment 0