RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
Linux  2006/09/08 13:40
출처 블로그 > 상큼한자유
원본 http://blog.naver.com/innko/25139848
쿼터 3.x(레드헷 7.1 이상) 에서 확인한 방법임
설정한 환경 사항은
uname -a
Linux ns.my2pc.com 2.4.22-1.2174.nptlsmp #1 SMP Wed Feb 18 16:21:50 EST 2004 i686 i686 i386 GNU/Linux
레드헷 페도라 코어 1 버전임

쿼터 설정 그대로 따라 하면 됨 안되면 말고 -_-;

[root@ns home]# cat /var/log/dmesg | grep quota
VFS: Disk quotas vdquot_6.5.1

vi /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
LABEL=/home             /home                   ext3    defaults       1 2

대충 저리 비슷한 환경 이라고 보고
위에는 하드가 스카시라 저라고 나옴
ide 하드는 hda1 hda2 뭐 이런식으로 나옴
여튼 쿼터 걸 파티션 하나 잡음 난 home 에다 잡을라고 저렇게 했음
우선 home 을 쿼터를 걸려고 했으니 그 부분을 이렇게 수정함

LABEL=/home             /home                   ext3    defaults,usrquota        1 2

usrquota 가 추가되었음 ^^;

[root@ns home]# mount -o remount /home
[root@ns home]# mount
/dev/cciss/c0d0p5 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/cciss/c0d0p1 on /boot type ext3 (rw)
/dev/cciss/c0d0p7 on /home type ext3 (rw,usrquota)
none on /dev/shm type tmpfs (rw)
/dev/cciss/c0d0p3 on /usr type ext3 (rw)
/dev/cciss/c0d0p2 on /var type ext3 (rw)

mout 로 보면
/dev/cciss/c0d0p7 on /home type ext3 (rw,usrquota)
이렇게 되있음 쿼터 된거임~


quota.user 파일 생성
사용자의 쿼터 정보를 담고 있는 파일인 quota.user  이게 자동으로 생기면 좋은데 그렇지가 않으니까~ 다음 과 같은 명령을 실행함~

[root@ns home]# touch /home/quota.user
[root@ns home]# chmod 600 quota.user

[root@ns home]# convertquota -u /home/
위 명령어 쳤는데 에러 뜨면 리붓 하번 해주면 됨 안되면 말고
//만약 위 부분에서 재부팅을 해도 안된다면
[root@ns home]# quotacheck -avugm
이 부분을 먼저 실행 하고 # convertquota -u /home/ 해보자 그럼 이제 될것이다.

그리고 ls -al 로 해서 대충 보면
aquota.user 이란 파일 하나 더 생김~


[root@ns home]# quotacheck -avug  
quotacheck: Cannot remount filesystem mounted on /home read-only so counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force checking.
위처럼 에러 뜨면 밑에처럼 하면 됨 안되면 역시나 말고
[root@ns home]# quotacheck -avugm
quotacheck: Scanning /dev/cciss/c0d0p7 [/home] done
quotacheck: Checked 4124 directories and 40103 files

///////////////////////////////////////////////////////
root@rootman /root]# quotacheck -a
Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.

위와 같은 경고 메시지를 만나면 당황하지 말고 quota를 잠시 중단하고 quotacheck를 한 후 다시 가동하면 된다.

[root@rootman /root]# quotaoff -a
[root@rootman /root]# quotacheck -a
[root@rootman /root]# quotaon -a

///////////////////////////////////////////////////////


//중요
만약 자신의 하드가 다른 물리적 파티션이거나 또는 다른 곳에서 마운트를 해왔다면
쿼터 적용이 안될것이다...왜냐 당연히 쿼터에 인식이 안되어 있으니까
그 부분을 위해 다른 곳도 쿼터에서 알수 있게 활성화를 시켜줘야 한다.
즉 /home 을 활성화 시킨다고 하면
quotaon -vaug /home
라고 하면
quotaon: using /home/aquota.user on /dev/hdb1: 장치나 자원 활성화
라는 문구가 뜰것이다 만약 이미 활성화가 되었다면
quotaon: using /home/aquota.user on /dev/hdb1: 장치나 자원이 동작 중
이런식의 문구가 뜰것이다.^^;
이 부분이 제대로 되어 있지않으면 사용자 정보가 제대로 반영이 안된다.
고로 아무리 쿼터를 적용해되 적용이 안되는 불상사가 생겨 버림


계정 용량 할당 하기

[root@ns home]# edquota bresting

Disk quotas for user bresting (uid 510):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/cciss/c0d0p7           3126776          0          0        598        0        0

그러면 저런 화면이 뜸

block(soft = 0, hard=0)
block 은 지금 사용하고 있는 총 용량
soft 는 용량의 제한을 둬서 그걸 넘으면 에러 메세지를 보냄
hard 는 그 용량 되면 더이상 못씀
inodes (soft =0,    hard=0)
이건 파일 게수를 뜻한 역시나 위와 같음

예를 들자면

Disk quotas for user bresting (uid 510):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/cciss/c0d0p7           50         51200          56320        10       1500     1550

50 메가 넘으면 경고 메세지 보냄
55 메가 넘으면 더이상 못씀
1500 게 파일 넘으면 경고 메세지
1550 게 파일 넘으면 더이상 못씀


유예 기간
[root@ns home]# edquota -t
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/cciss/c0d0p7                  7days                  7days


쿼터 설정 상태

[root@ns home]# repquota -a
*** Report for user quotas on device /dev/cciss/c0d0p7
Block grace time: 7days; Inode grace time: 7days
                       Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    1216       0       0            141     0     0      
nobody    --   37960       0       0            825     0     0      
vpopmail  --    1688       0       0            181     0     0      
bresting  -- 3126776       0       0            598     0     0      
fellen    -- 26592228       0       0           1150     0     0      
mysql     --      20       0       0              5     0     0      
photo     --      24       0       0              6     0     0      
my2pc     --  332756       0       0           2394     0     0      
kang0927  -- 1410648       0       0           2713     0     0      
down      -- 6820940       0       0           1632     0     0      
jhs1013   -- 2646524       0       0           1644     0     0      
infoftp   -- 9556676       0       0           1213     0     0      
bibichu   -- 4675392       0       0           4668     0     0      
moriya    -- 9892968 9900000 9950000          13858     0     0      
heyworld  --      24       0       0              6     0     0      
heyoh     -- 8223824       0       0             75     0     0      
issey     -- 2285488       0       0          10063     0     0      
hayan     -- 1176884       0       0           1903     0     0      
club      --    5672       0       0            748     0     0      



쿼터 설정을 다른 사용자와 동일하게 설정 하기

edquota -p bresting bresting1 bresting2
bresting 의 환경을 bresting1 bresting2 에게 같이 적용

다중 사용자의 쿼터 적용
edquota -p bresting `awk -F: '$3 > 500 {print $1}' /etc/passwd`
awk 앞에는 숫자1 옆의 ` 그다음은 엔터 옆 ' ' passwd 는 숫자1 `




crontab -e
0 3 * * 0 /sbin/quotacheck -avugm
===============================================================================================



아래는 linux.co.kr 의 테마리눅스 중 Quota 사용하기 입니다.

쿼터를 설정하면 질문하신 것이 다 해결됩니다.

0. quota 가동 준비사항.

quota를 가동하기 위해서는 커널 컴파일시에 다음과 같은 커널 옵션에

체크되어야 된다.

File systems ---> [ * ] Quota support

(/boot/config-......)→CONFIG_QUOTA=y

1. /etc/fstab 수정하기


quota를 설정하기 위해서 가장 먼저해야될 일은 /etc/fstab 파일을 수정하는 것이다.

독립 파티션으로 만들어진 /home 디렉토리에 쿼터를 적용해 볼 것이기 때문에

LABEL=/home 부분의 설정에 사용자 쿼터 설정 부분을 옵션에 추가해 주면 된다.

추가해줄 위치는 defaults뒤에 컴마( , )로 구분해서 'usrquota'(사용자쿼터)를

추가하자. 그룹쿼터를 적용하기 위해서는 'grpquota'를 설정해 주면 된다.

2. quota.user 파일 만들기와 aquota.user(커널 2.4.x)로 변환하기.

커널 2.4.x를 사용하는 시스템에서 quota를 사용하기 위해서는 quota가 적용될

파티션의 최상위 디렉토리에 quota.user파일을 만들고, quota.user 파일을

aquota.user 파일로 변환해 주는 작업을 한번 더 거쳐야 된다.

작업 과정은 다음 그림과 같다.


먼저 touch 명령으로 quota.user 라는 빈 파일을 하나 만들고 퍼미션을 600으로

설정한 후 quota.user파일이 생성되었다.

그다음 커널 2.4.x 시스템을 위해 convertquota로 quota.user 파일을 aquota.user

파일로 변환했다.

aquota.user(quota.user)파일은 user들의 쿼터 설정들을 저장하고 있는 파일이다.

quota 사용을 위해 /etc/fstab 파일에 설정해 준 형식으로 /home 파티션을 마운트

해야 되기 때문에 위 과정을 모두 마쳤으면 시스템을 리부팅을 하자.

3. 리부팅 후 /home 파일 시스템 확인하기.


부팅 과정에서 quota를 사용할 수 있는 파일 시스템으로 마운트 하고 quotaon을

실행하기 때문에 부팅 후 'quotaon' 명령을 따로 해 줄 필요가 없다.

부팅 과정중에 어떻게 quotaon이 실행되는지 확인해 보고 싶으신 분은

/etc/rc.local/rc.sysinit 파일을 살펴보시길..

mount 명령으로 /home 파티션의 마운트 정보를 확인했을 때 위와 같이

(rw,usrquota)로 설정되어 있으면 제대로 설정 된 것이다.

4. quotacheck 명령으로 현재 user별 /home 파티션 사용량 체크하기

  • quotacheck 옵션
    -vverbose의 의미로, 체크 도중 여러가지 유용한 정보를 제공한다
    -u특정 UID(User ID)가 사용하는 파일과 디렉토리를 카운트하게한다
    -g특정 GID(Group ID)가 사용하는 파일과 디렉토리를 카운트하게한다
    -a/etc/fstab 파일에 usrquota 옵션이 포함된 파일 시스템을 모두 체크한다


    다음 그림은 'quotacheck -a' 명령후 'repquota -a' 명령으로 현재 쿼터 정보를
  • 출력한 화면이다.

  • 현재 quota가 가동중일 때 quotacheck 명령을 하면 다음과 같은 경고 메시지를

    보게 될 것이다.


    root@rootman /root]# quotacheck -a
    Quota for users is enabled on mountpoint /home so quotacheck might damage the file.
    Please turn quotas off or use -f to force checking.


    위와 같은 경고 메시지를 만나면 당황하지 말고 quota를 잠시 중단하고 quotacheck를 한 후 다시 가동하면 된다.


    [root@rootman /root]# quotaoff -a
    [root@rootman /root]# quotacheck -a
    [root@rootman /root]# quotaon -a



    위 그림은 Block(용량)에 대한 유효기간과, Inode(파일수)에 대한 유효기간이

    default 값인 7일로 설정되어 있고 아직 user들의 사용량을 제한하지 않았기

    때문에 soft, hard 값들은 0으로 표시되어 있다.

    5. edquota 명령으로 Block(용량)과 Inode(파일수)를 제한하기

    ::edquota 명령의 옵션

    -u사용자의 쿼터를 편집하는 옵션으로 기본값이다.
    -p여러 사람의 쿼터를 설정할 때 -p 옵션뒤에 사용자 ID를 쭉~ 적어주면 ID 제일 앞에 있는 ID와 동일하게 쿼터가 적용된다.
    (예: edquota -p yyc rootman yunil --> 사용자 rootman, yunil은 yyc의 쿼터 설정이 그대로 적용된다)
    -g그룹의 쿼터를 편집하는 옵션으로, quota.group 파일이 필요하다.
    -t각 파일 시스템에 대한 유예기간을 설정하기 위한 옵션이다.


    사용자의 쿼터를 편집하기 위해서는 '-u' 옵션을 그룹의 쿼터를 편집하기 위해서는 '-g' 옵션을 사용하면 된다.

    아래 그림은 사용자 yyc 의 쿼터를 편집하기 위한 화면이다.

    [root@rootman root]# edquota -u yyc


    첫줄은 쿼터 편집의 대상에 대한 정보이고 두 번째 줄은 쿼터가 적용될 디바이스의 정보이다.

    셋째줄은 사용자 yyc 소유의 파일의 총 size에 대한 정보와 제한할 용량의 soft와

    hard값이 설정되어 있다.

    넷쨰줄은 사용자 yyc 소유의 inode(파일수)에 대한 정보와 제한할 inode(파일수)의 soft와 hard값이 설정되어 있다.

    **참고 : inode는 디렉토리수와 파일수를 합친 값이 적용된다. 사실 디렉토리도 파일이니까..

    soft : 실제적인 제한량이다. 단, 유예기간이 설정되어 있을 경우 유예기간동안은 soft 값을 초과할 수 있다.

    hard : quota 제한량의 절대적인 수치이다. 어떠한 경우라도 hard 값을 초과할 수는 없고 유예기간동안이라도 hard값은 초과할 수 없다.

    위 설정 내용은 사용자 yyc가 사용할 수 있는 총 사용량이 200000(KB)이고 유예기간 동안에는 250000(KB)까지 사용할 수 있다는 설정이다.

    만약 유예기간이 지나서도 soft값을 초과하고 있을 시에는 hard 값에 상관없이 soft 값을 초과할 수 없다.

    즉 soft 값 이하로 파일들을 정리하지 않을 경우에는 절대 새로운 파일을 생성할 수 없다.

    6. edquota -t (유예기간 설정하기)

    quota 에서의 유예기간이란 사용자가 quota 설정의 soft 값을 초과 하더라도 일정 기간동안 파일을 정리할 시간을 주는 의도로 사용된다.

    설정된 soft 값을 초과했을 때부터 유예기간이 카운트 다운되는데 이 기간동안은 hard 값을 초과하지 않는 범위에서 얼마든지 파일을 생성할 수 있다. 하지만 유예기간이 지나게 되면 사용자는 hard 값에 상관없이 soft 값을 초과할 수 없고 soft값 이하로 파일을 정리할 때까지 새로운 파일을 생성할 수 없다.

    아래 그림은 Block(용량)에 대해 3일, inode(파일수)에 대해 3일의 유예기간을 설정한 화면이다.


    유예기간 역시 block(총용량) inode(총파일수)에 대해서 설정할 수 있으며 설정되는

    기간의 단위는 아래와 같다.


    sec(onds) : 유예기간을 초(seconds) 단위로 설정한다.
    min(utes) : 유예기간을 분(minutes) 단위로 설정한다.
    hour(s) : 유예기간을 시(hours) 단위로 설정한다.
    day(s) : 유예기간을 일(days) 단위로 설정한다.



    block(용량)과 inode(파일수)에 대한 유예기간 설정은 각각

    'Block grace:', Inode grace:' 뒤에 한칸 뛰우고 유예기간을 설정하면 된다.


    주의

    원래는 quota의 단위 설정은 숫자와 기간단위 사이에 빈공간(스페이스)를 주어서 설정하는데 redhat 7.1 계열에 패키징 된 quota 유틸들 중에는 숫자와 유예기간 단위를 붙여서 적어줘야 올바르게 저장 되는 경우가 있다.

    예 : 3 days --> 3days


    다음은 soft 값을 초과한 사용자를 'repquota -a' 명령으로 확인하는 화면이다.


    위의 그림은 사용자 abc 가 quota 사용량 soft 값을 초과해서 유예기간(grace)가

    카운트 다운 되고 있는 모습이다.

    참고
    grace 부분은 유예기간을 설정 했더라도 사용자가 soft 값을 넘어가기 전에는 표시

    되지 않는다.
    사용자가 soft 값을 초과하면 그때부터 'edquota -t' 의 설정대로 카운트다운이 되는 것이다

    사용자가 soft 값을 초과 했을 때 보여지는 사용자에게 보여지는 메시지


    경고 메시지는 나타나지만 hard 값을 초과하지 않았다면 파일은 생성된다.

    chmod 600 /web/quota.user
    convertquota -u /web
    mount
    cat /etc/fstab
    mount
    mount -o /dev/hda2
    mount -o remount /dev/hda2
    cd /web/
    quotacheck -m /web
    rpm -qa quota
    mount
    pstree
    /usr/local/apache/bin/apachectl stop
    vi /etc/fstab
    dmesg
    umount /dev/hda2
    pstree
    mount -o remount /web
    dmesg
    mount -o remount /dev/hda2
    quotacheck -m /web
    mount -o remount /web
    quotacheck -m /web
    dmesg
    uname -a
    vi /etc/fstab
    mount
    mount -o remount /dev/hda2
    quotacheck -m /dev/hda2
    quotacheck -m /web
    mount
    rm -rf quota.user
    ll
    mount
    quotacheck -m /web
    touch quota.user
    quotacheck -m /web
    ll
    touch aquota.user
    quotacheck -m /web
    quotaon -a
    rm -rf quota.user
    quotacheck -m /web
    touch quota.user
    quotacheck -m /web
    touch aquota.user
    quotacheck -m /web
    quotaon -a
    2006/09/08 13:40 2006/09/08 13:40
    이 글에는 트랙백을 보낼 수 없습니다
    from.Pumpkin carving supplies  2023/12/04 03:25
    상상플러스 :: Quota설정 ext3
    웅쓰:웅자의 상상플러스
    웅자의 상상플러스
    전체 (379)
    게임 (5)
    영화 (2)
    기타 (23)
    맛집 (5)
    영어 (2)
    대수학 (3)
    형태소 (5)
    Hacking (9)
    Linux (112)
    HTML (48)
    Application_developing (48)
    Web_developing (102)
    Window (11)
    «   2024/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  
    1. 2016/01 (1)
    2. 2015/12 (3)
    3. 2015/10 (3)
    4. 2015/03 (2)
    5. 2015/01 (4)