RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

출처 : 대전국제IT교육센터 정성재 강사

 

1. Disk Quota
(1) 설명: 사용자들의 계정 용량을 제한할 경우에 사용한다. 그룹단위로도 용량을 제한할 수 있으며
          웹호스팅 서비스를 하는 경우에 유용하다. 보통 블록단위의 용량제한과 inode의 갯수를 제
          한한다.
(2) 관련명령어
   1) quotacheck
     ㄱ. 설명: 디스크를 사용하고 있는 파일 시스템을 체크하여 quota기록파일(quota.user 또는
              quota.group)을  가장 최근의 상태로 업데이트 시키는 명령이다.
     ㄴ. 사용법
        quotacheck [option] 디렉토리명
     ㄷ. option
        -a : 모든 그룹과 사용자에 대한 quota를 체크한다.
        -m : 읽기 전용 모드 등의 이유로 마운트를 하지 못할 경우 강제로 체크할 때 사용한다.
        -f : 쿼터파일 초기생성시 잘 인식하지 못하는 경우 강제로 인식시킬 때 사용한다.
     ㄹ. 사용예
       a. [root@www /root]# quotacheck /home
           => 주의할점은 이 명령을 수행할 경우에는 파일의 손상의 위험이 있으므로 quotaoff상태
             에서 해야한다.
       b [root@www /root]# quotacheck -m /home
           => 강제로 /home을 체크한다.
   2) edquota
     ㄱ. 설명: 사용자에게 쿼타를 할당할때 사용한다.
     ㄴ. 사용법
        edquota [option]
     ㄷ. option
        -t : soft limit를 초과한 후부터 적용되는 시간제한을 설정하는 옵션이다.
        -p : quota를 다른 사용자에게도 동일한 설정으로 적용한다.
        -g : 그룹의 quota를 설정한다.
     ㄹ. 사용예
        a. [root@www /root]# edquota posein
            => posein이라는 사용자의 쿼터를 할당한다. 그러면 기본편집기(vi)가 실행되면서
              다음과 같이 나온다.
            Disk quotas for user posein (uid 500):
              Filesystem            blocks       soft       hard     inodes     soft     hard
              /dev/hda8             259556          0          0        248        0        0
             => (설명)
               Filesystem : Quota가 설정되어 있는 파티션을 나타낸다.
               Blocks : 현재 사용중인 용량을 나타낸다.
               soft : 보통의 경우에는 사용할 수 있는 최대 용량을 나타낸다. 유예기간(grace
                     period)이 설정되어 있는 경우에는 사용용량 초과에 대한 경고를 받는 경계선
                     으로 사용된다.
               hard : 유예기간이 설정되어 있는 경우에 작동하는 것으로 사용자가 사용할 수 있는
                     최대 용량을 의미한다.
               inodes : 현재 사용중인 inode를 나타낸다.
        b. [root@www /home]# edquota -t
             => 실행시키면 vi편집기가 실행되면서 다음과 같이 나타난다. 여기서 날짜를 변경하면
              된다.
              Grace period before enforcing soft limits for users:
              Time units may be: days, hours, minutes, or seconds
                Filesystem             Block grace period     Inode grace period
                /dev/hda8                     7days                  7days
                 => (설명)
                   Filesystme : Quota가 설정된 파일시스템을 나타낸다.
                   Block grace period : Block의 soft제한을 초과했을 경우의 유예기간이다.
                   Inode grace period : Inode의 soft제한을 초과했을 경우의 유예기간이다.
        c. [root@www /home]# edquota -p posein prehee
             => prehee이라는 사용자의 설정을 posein의 설정과 동일하게 만든다.
   3) quotaon
     ㄱ. 설명: quota를 시작하기 위해 실행하는 명령이다.
     ㄴ. 사용법
        quotaon 디렉토리명
     ㄷ. 사용예
        [root@www /root]# quotaon /home
   4) quotooff
     ㄱ. 설명: quota를 종료시킨다.
     ㄴ. 사용법
        quota 디렉토리명
     ㄷ. 사용예
        [root@www /root]# quotaoff /home
   5) repquota
     ㄱ. 설명: quota의 설정 상황을 보여준다.
     ㄴ. 사용법
        repquota [option] 디렉토리명
     ㄷ. option
        -a : quota설정이 되어 있는 모든 파티션의 quota상태를 보여준다. 이 옵션을 사용하면 디렉
            토리명을 지정할 필요는 없다.
        -g : 그룹에 대한 quota상태를 보여준다.
        -u : 사용자에 대한 quota상태를 보여준다.(기본값으로 설정되어 있음)
        -v : 모든 quota상태를 보여준다.
     ㄹ. 사용예
        a. [root@www /home]# repquota /home
           *** Report for user quotas on device /dev/hda6 (/home)
           Block grace time: 7 days; Inode grace time: 7 days
                                   Block limits                File limits
           User            used    soft    hard  grace    used  soft  hard  grace
           ----------------------------------------------------------------------
           root      --   19372       0       0            231     0     0
           nobody    --      28       0       0              6     0     0
           posein    --   11608   50000   55000            398     0     0
        b. [root@www /home]# repquota -g /home
            => 그룹단위로 쿼타상태를 보여준다.
   6) quota
     ㄱ. 설명: 자신의 쿼타 용량 상태를 보여준다.
     ㄴ. 사용법
        quota
     ㄷ. 사용예
        [posein@www posein]$ quota
        Disk quotas for user posein(500):
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/hda6   11608   50000  55000             398       0      0
   7) convertquota
     ㄱ.설명: 쿼타설정과 관련된 quota.user, quota.group을 새로운 형태의 aquota.user, aquota.g
             roup파일 포맷으로 변경해준다. 레드햇 리눅스 2.4이상의 파일시스템에서 적용된다. 새
             로운 파일 포맷은 32bit uids/gids를 지원하며, root권한으로 quota를 설정해야 하며,
             bytes단위로 사용공간을 체크한다.
     ㄴ. 사용법
         convertquota [option] 디렉토리명
     ㄷ. options
       a. -u : 사용자 쿼타파일(quota.user)을 바꾼다. 기본값이다.
       b. -g : 그룹의 쿼타파일(quota.group)을 바꾼다.
     ㄹ. 사용예
       a. [root@www /]# convertquota /home
            => 사용자 쿼타파일인 qutoa.user를 aquota.user 파일로 전환한다.
       b. [root@www /]# convertquota -g /home
            => 그룹 쿼타파일인 qutoa.group를 aquota.group파일로 전환한다.
(3) 설정하기
   1) /etc/fstab 설정
     ㄱ. 설명: 만약 설정하려는 파티션이 /home이라면 보통 다음과 같이 설정되어 있다.
              /dev/hda6               /home                 ext2    defaults        1 2
              여기서 네번째필드에 usrquota라고 설정한다.
     ㄴ. 예
        /dev/hda6               /home                 ext2    defaults,usrquota   1 2
     ㄷ. 참고: /etc/fstab파일을 변경했을 경우에는 시스템을 재부팅하거나 다시 마운트해야 한다.
              mount -o remount /home
   2) quota.user 파일 생성
     ㄱ. 설명: 사용자의 쿼타정보를 가지고 있는 파일이 quota.user인데 이 파일을 생성해야 한다.
              보통 설치하고자 하는 파티션의 최상위에 만든다.
     ㄴ. 예
        [root@www /root]# touch /home/quota.user
        [root@www /root]# chmod 600 /home/quota.user
          => /home에 쿼터를 설정하려면 /home디렉토리에 만들며, root권한자만이 읽고 쓰기가
            가능하도록 설정한다.
   3) quotacheck 디렉토리
     ㄱ. 설명: 설정된 값을 읽어들여서 반영한다.
     ㄴ. 예
        [root@www /root]# quotacheck -mf /home
   4) convertquota 명령으로 aquota.user로 변환하기
     ㄱ. 설명: 예전에 사용하던 quota.user파일을 최신의 aquota.user파일로 convert해야 한다.
              convertquota명령은 커널 2.4이상의 시스템에서 적용된다.
     ㄴ. 예
        [root@www home]# convertquota -u /home
   5) 사용자에 대한 쿼터설정
     ㄱ. 설명: 제한하려는 용량을 설정한다. 옆에 나온 단위를 참조하여 값만 입력한다.
     ㄴ. 예
        [root@www /root]# edquota posein
   6) quota를 시작한다.
     [root@www /root]# quotaon /home
(4) 테스트
   1) 쿼터확인
     [root@www home]# repquota /home
     *** Report for user quotas on device /dev/hda8
     Block grace time: 7days; Inode grace time: 7days
                             Block limits                File limits
     User            used    soft    hard  grace    used  soft  hard  grace
     ----------------------------------------------------------------------
     root      --      96       0       0              8     0     0
     nobody    --      32       0       0             10     0     0
     prehee    --      64    2000    3000             15     0     0
       => soft제한이 2M정도임을 알 수 있다.
   2) 용량을 초과한뒤의 쿼타확인
     [root@www home]# repquota  -a
     *** Report for user quotas on device /dev/hda8
     Block grace time: 7days; Inode grace time: 7days
                             Block limits                File limits
     User            used    soft    hard  grace    used  soft  hard  grace
     ----------------------------------------------------------------------
     root      --     112       0       0              9     0     0
     nobody    --      32       0       0             10     0     0
     prehee    +-    2916    2000    3000  6days      16     0     0
      => 앞쪽에 -- => +- 기호로 바뀌었다. 즉 Block limits의 soft한도가 넘었다는 뜻이다. grace
        에 6days라는 값이 표기되었다는 것은 6일동안은 soft한도를 넘어 사용을 해도 사용가능하다
        는 뜻이다. 하지만 6일 이후에는 soft한도내로 용량을 줄여야지만 새로운 데이터를 올릴 수
        있게 된다. 그러나 절대로 hard 한도는 넘을 수 없다. 이 한도를 넘게 되면 데이터를 저장할
        수 없다는 메시지가 출력된다.
(5) 그룹쿼타 설정하기
   1) /etc/fstab 설정
     ㄱ. 설명: 만약 설정하려는 파티션이 /home이라면 보통 다음과 같이 설정되어 있다.
              /dev/hda6               /home                 ext3    defaults        1 2
              여기서 네번째필드에 grpquota라고 설정한다.
     ㄴ. 예
        /dev/hda6               /home                 ext3    defaults,grpquota   1 2
     ㄷ. 참고: /etc/fstab파일을 변경했을 경우에는 시스템을 재부팅하거나 다시 마운트해야 한다.
              mount -o remount /home
   2) quota.group 파일 생성
     ㄱ. 설명: 그룹의 쿼타정보를 가지고 있는 파일이 quota.group인데 이 파일을 생성해야 한다.
              보통 설치하고자 하는 파티션의 최상위에 만든다.
     ㄴ. 예
        [root@www /root]# touch /home/quota.group
        [root@www /root]# chmod 600 /home/quota.group
          => /home에 쿼터를 설정하려면 /home디렉토리에 만들며, root권한자만이 읽고 쓰기가
            가능하도록 설정한다.
   3) quotacheck 디렉토리
     ㄱ. 설명: 설정된 값을 읽어들여서 반영한다.
     ㄴ. 예
        [root@www /root]# quotacheck -g -m /home
   4) convertquota 명령으로 aquota.group로 변환하기
     ㄱ. 설명: 예전에 사용하던 quota.group파일을 최신의 aquota.group파일로 convert해야 한다.
              convertquota명령은 커널 2.4이상의 시스템에서 적용된다.
     ㄴ. 예
        [root@www home]# convertquota -g /home
   5) 사용자에 대한 쿼터설정
     ㄱ. 설명: 제한하려는 용량을 설정한다. 옆에 나온 단위를 참조하여 값만 입력한다.
     ㄴ. 예
        [root@www /root]# edquota -g terran
   6) quota를 시작한다.
     [root@www /root]# quotaon /home
   7) quota의 확인
     [root@www /]# repquota -g /home


2. 스케줄링
(1) 개요: 스케줄링이란 특정한 시간에 특정한 작업을 행하게 하는 것이다. 보통 리눅스에는 cron
          과 at를 이용한다.
(2) at
   1) 설명: 지정한 시간에 원하는 명령을 실행될 수 있도록 해준다. atd데몬에 의하여 실행되고,
           지정한 작업은 큐(queue)에 저장되며 저장된 작업들은 /var/spool/at 디렉토리 아래
           파일로 저정된다. 보통 한번 실행되는 경우에 사용된다. 명령은 기본적으로 표준 입력
           장치를 통해받으며, 입력의 종료는 ctrl+d를 누른다.
   2) 사용법
     at [opion] 시간
   3) option
     -q queue : 작업의 대기 큐를 지정한다. 사용할 수 있는 큐는 a-z, A-Z까지이다. 지정하지
               않으면 기본큐로 a를 사용한다.
     -c job : 작업 리스트를 출력한다.
     -d : 작업을 삭제한다. (atrm과 같음)
     -l : 큐에 있는 작업들을 보여준다. root인 경우에는 모든 작업들의 목록을 보여준다.
         (atq와 같음)
     -m : 실행한 결과를 메일로 통보해 준다.
     시간 : 실행할 시간을 기록한다. 시간지정은 HHMM,HH:MM형태로 가능하고 am,pm으로 구분가능
           하다. 날짜의 경우는 MMDDYY, MM/DD/YY, MM.DD.YY형태로 나타낸다. 또한 now, tomorrow,
           noon같은 문자열도 사용가능하다.
     -f 파일명 : 표준입력이 아닌 지시된 파일에서 작업을 읽어온다.
   4) 사용예
     ㄱ. [posein@www posein]$ at 1:40am tomorrow
         warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh
         at> ls -al > list.txt
         at>                                       // 중단하려면 여기에서 ctrl+d키를 누른다.
         job 3 at 2002-06-13 01:40
     ㄴ. [posein@www posein]$ at -l
         4       2002-06-12 01:48 a posein
           => 현재 예약된 작업의 리스트를 보여준다.
     ㄷ. [posein@www posein]$ at 7:00pm March 20
           => 3월20일 오후 7시에 작업을 예약한다
     ㄹ. [posein@www posein]$ at now+3hours
          => 3시간 후에 작업을 예약한다.
     ㅁ. [posein@www posein]$ at now + 5 minutes
          => 5분 뒤에 작업을 예약한다.
     ㅂ. [posein@www posein]$ at midnight + 10 minutes
          => 자정에서 10분뒤 즉, 00:10의 작업을 예약한다.
   5) 관련명령어
     ㄱ. atq
        a. 설명: 큐에 저장된 작업들을 보여주는 명령으로 at -l 실행결과와 같다. 작업번호와
                작업이 실행된 예정 시간, 작업이 저장되어 있는 큐를 보여준다.
        b. 사용법
          atq
        c. 사용예
          [posein@www posein]$ atq
          3       2002-06-12 01:40 a posein
     ㄴ. atrm
        a. 설명: 예약된 작업을 취소할 때 사용하는 명령으로 큐에서 해당 작업을 삭제한다. at -d
                를 사용하는 것과 같다.
        b. 사용법
          atrm 작업번호
        c. 사용예
          [posein@www posein]$ atrm 4
   6) at 사용자제한
     ㄱ. 설명: at데몬을 사용할 수 있는 사용자를 제한할 수 있다. /etc/at.allow파일과
              /etc/at.deny파일을 이용한다. /etc/at.allow파일에 등록하면 등록된 사용자만이
              사용가능하다. /etc/at.allow파일이 있다면 이 파일에 명단이 있는 사용자만이
              at명령을 사용할 수 있다. 이 파일이 없으면 /etc/at.deny파일을 찾는다. /etc/at.
              deny파일에 목록이 있는 사용자는 at를 사용할 수 없다. 두 파일 모두 찾지 못하면
              오로지 슈퍼 유저만이 사용가능하다. 또한 /etc/at.deny파일이 비어있으면 모든
              사용자가 at명령을 사용할 수 있다.
     ㄴ. 설정: 한 줄에 한 계정만 적는다.
        [root@www /root]# cat /etc/at.allow
        posein
        prehee
(3) cron
   1) 설명: 같은 작업을 주기적으로 반복할 수 있도록 해준다. 보통 /etc/rc.d/init.d/crond에
           의해 실행된다. 설정은 /usr/bin/crontab명령어를 사용한다.
   2) 관련명령어 및 파일
     ㄱ. crontab
        a. 설명: cron작업을 설정하는 명령어이다. 실행시키면 기본편집기인 vi가 실행된다.
        b. 사용법
          crontab [option] [파일명]
        c. option
          -l : 현재 crontab에 의해 설정된 내용을 출력한다.
          -e : crontab의 내용을 작성하거나 수정한다.
          -r : crontab의 내용을 삭제한다.
          -u : root권한자가 해당사용자의 crontab파일을 다룰때 사용한다.
        d. 사용예
          1. [root@www /root]# crontab -l
              no crontab for root
               => 작업의 목록을 보여준다.
          2. [posein@www posein]$ crontab -r
               => 등록된 작업을 삭제한다.
          3. [root@www /root]# crontab -e -u posein
              => posein이라는 사용자의 crontab을 작성하거나 수정한다.
          4. [posein@www posein]$ crontab aaa
              => aaa라는 파일을 crontab으로 사용한다. 이 경우에는 미리 aaa파일을 crontab의
                형식에 맞게 입력해놔야 한다.
        e. crontab의 작업형식 : 5개의 날짜 필드와 1개의 명령필드로 구성되어 있다.
          MM HH DD mm d command
          (설명)
            MM : 분(Minute)을 의미한다.(0~59까지 사용)
            HH : 시(Hour)를 의미한다.(0~23까지 사용)
            DD : 날짜(Day of Month)를 의미한다.(1~31까지 사용)
            mm : 달(Month)을 의미한다.(1~12까지 사용)
            d  : 요일(Day of Week)을 의미한다.(0~7까지 사용, 0과 7은 일요일을 나타냄)
            command : 실행할 작업을 명기한다.
          (참고)
            위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할 수 있고 각각의
           요일을 구분할 때','를 사용하고, 연일을 나타낼 때는 '-'를 사용한다. 즉 월요일과
           수요일은 '1,3'으로 월요일부터 금요일까지는 '1-5'로 표시할 수 있다.
     ㄴ. /etc/crontab
        a. 설명: 시스템이 정기적인 작업이 수행될 수 있도록 기본적으로 설정되어 있는 파일이다.
        b. 설정예
          [root@www /etc]# cat /etc/crontab
          SHELL=/bin/bash
          PATH=/sbin:/bin:/usr/sbin:/usr/bin
          MAILTO=root
          HOME=/

          # run-parts
          01 * * * * root run-parts /etc/cron.hourly
          02 4 * * * root run-parts /etc/cron.daily
          22 4 * * 0 root run-parts /etc/cron.weekly
          42 4 1 * * root run-parts /etc/cron.monthly

          0-59/5 * * * * root /usr/bin/mrtg.sh /usr/lib/mrtg/mrtg.cfg
           => run-parts는 디렉토리 이하의 스크립트를 순차적으로 실행하는 명령어이다.
     ㄷ. /etc/cron.allow : at과 마찬가지로 사용자를 제한할 때 사용한다.
     ㄹ. /var/spool/cron 디렉토리 : 각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각
                                   사용자의 계정이름으로 저장된다.
   3) 설정하기
     ㄱ. crontab -e 명령을 내린다.
     ㄴ. 해당형식에 맞게 입력한다.
        예) 0 12 * * 1-5 /home/posein/aaa
           => 월요일부터 금요일까지 /home/posein/aaa라는 스크립트를 실행시킨다.
     ㄷ. 설정예
        1) 0 12 1 1-12/2 * /home/posein/bbb
            => 1월부터 12월까지 2개월마다 /home/posein/bbb라는 스크립트를 실행시킨다.
        2) 0 10 * * 1 cat /root/notice | mail -s "Notice"
posein@mybestone.com
            => 월요일 오전 10시에 notice라는 문서의 내용을 메일로 발송한다. 
Trackback
Reply
우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
Blah.. blah.. (5)
My Advanced Linux (73)
RedHat Knowledge (10)
Advanced Linux (47)
Virtualization (7)
HA clustering (2)
Bash shell scripts (6)
Learning Linux (96)
Fundamental (41)
AdminCourse (32)
Security (23)
OperatingSystem (5)
AIX (2)
HPUX (3)
Databases (4)
Oralce (3)
Mysql (1)
OpenSource (1)
Tips! (1)
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31