[ LinuxFreeBSD ] in KIDS 글 쓴 이(By): hammett () 날 짜 (Date): 1998년03월28일(토) 14시46분46초 ROK 제 목(Title): Re: [질문]disk quota ? 저희 시스템에 깔려있던 mini-howto의 번역본을 올립니다. ---------------------------------------- 리눅스에서 Quota를 사용하는 방법 ================================ 작 성 : Albert M.C. Tam (bertie@scn.org) 갱신날짜 : 1996년 7월 27일(토) 21:04:38 PDT 번 역 : 이 정균 (gz016508@nownuri.nowcom.co.kr) 번 역 일 : 1996년 12월 18일(수) 전문: 이 문서는 Albert M.C. Tam (bertie@scn.org)에 의해 작성되었다. 이 문서는 비 상업적인 목적으로는 저자와 편집자의 이름, 그리고 이 주의사항을 첨부하고, 문서가 수정되지 않은 상태로 사용,복사,배포할 수 있다. 이 문서가 유용한 글이 되기를 바라면서 배포되었으나, 표현되거나 함축된 말에 대해서 어떠한 보증은 할수 없다. 이 문서내에 포함된 정보의 정확성을 보증하는데 모든 노력에도 불구하고, 이 문서내에 포함된 내용으로 인해 발생한 어떠한 에러나 피해에 대해 저자와 편집자 그리고 유지보수하는 사람은 어떠한 책임도 가지지 않는다. 이 문서는 리눅스 호스트의 화일시스템에서 quota를 사용하는 방법 - 디스크 사용량을 부여하고, quota의 여러 명령어들의 사용방법등 - 에 대해서 기술한다. 이 문서는 커널 2.x(2.0.7에서 테스트하였다)를 사용하는 사용자를 위한것이다. 이전 버전의 커널을 사용하는 사용자는 업그레이드하기를 권한다. 에러를 발견하거나 어떤 정보가 빠져있으면 bertie@scn.org로 서슴치 말고 의견을 보내주기 바란다. 나는 감사히 여길것이다!! ---------------------------------------------------------------------------- Quota 란 무엇인가? Quota 는 다음의 두가지 방법으로 디스크 저장장치의 사용 제한을 할 수 있게 한다. 1. 사용자가 가질수 있는 inode의 수 2. 그리고 사용자에게 할당된 디스크 블럭의 수 Quota는 사용자가 그들에게 부여된 디스크의 제한 용량 이상으로 사용하지 못하게 하며, 시스템의 디스크 공간을 무제한적으로 사용하지 못하게 한다. 리눅스에서 Quota의 현재 상태 Quota는 커널 버전 1.3.8x 부터 지원하며, 커널 2.0이상에서도 역시 지원한다. 만약 당신의 시스템이 quota를 지원하지 않는다면 업그레이드하기를 권장한다. 현재, quota는 ext2 화일 시스템에서만 동작한다. 리눅스에서 quota를 사용하기 위한 요구사항 커널 커널 2.0의 소스는 다음 장소에서 구할수 있다. ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0/ Quota 프로그램 당신이 가지고 있는 리눅스 배포판에 따라 시스템에 quota가 깔려져 있을수도 있다. quota 프로그램의 소스는 다음의 장소에서 구할 수 있다. ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz. ---------------------------------------------------------------------------- 리눅스에서 Quota 설정 - 1장: 환경 설정 ====================================== 1. 커널의 재설정 quota를 지원할수 있도록 커널을 재설정한다. Quota support (CONFIG_QUOTA) [n] y 2. 컴파일과 quota 프로그램의 설치 quota 프로그램의 소스는 다음장소에서 구할수 있다. ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz 앞에서 언급한 quota 프로그램은 이미 리눅스용으로 포팅되어 있고 커널 2.x의 리눅스 시스템에서 컴파일되어야 한다. 컴파일중에 MNTOPT 상수가 정의되지 않았다는 에러가 발생할수도 있다. 이럴때는 mntent.h 화일을 /usr/include/mntent.h 로 복사한후 컴파일을 해본다. 3. quota를 검사하고 부트시에 quota를 작동시키기 위해 system init 스크립트를 수정한다. 예제: # Check quota and then turn quota on. if [ -x /usr/sbin/quotacheck ] then echo "Checking quotas. This may take some time." /usr/sbin/quotacheck -avug echo " Done." fi if [ -x /usr/sbin/quotaon ] then echo "Turning on quota." /usr/sbin/quotaon -avug fi 가장 좋은 방법은 /etc/fstab에 명시된 화일시스템이 마운트 된 후부터 *항상* quota를 켜놓는것이다. system init 스크립트의 끝부분 또는 화일시스템이 마운트 되는 부분의 바로 뒷부분에 quota를 켜는것을 추천한다. 4. /etc/fstab 화일을 수정한다. 일반적으로 quota가 작동되기 전의 파티션은 다음과 같다: /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1 화일시스템에 quota를 추가하려면, "defaults"라는 단어 뒤, 즉 4번째 항에 "usrquota"를 적는다. /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1 5. quota 기록화일인 "quota.user"를 만든다. quota 기록화일인 quota.user의 소유자는 root여야만 한다. 즉, root이외에는 누구도 읽거나 기록할 수 없도록 해야한다. root로 로그인한 후, quota 를 설치하려는 파티션의 최상위 디렉토리(base)에 quota.user화일을 다음과 같이 만든다. touch /partition/quota.user chmod 600 /partition/quota.user 6. 리부트 자, 이제 수정한 정보로 동작하게끔 시스템을 재가동(reboot)시킨다. 후에 다른 파티션에도 quota를 설치하려면 4, 5, 6번 과정을 되풀이하면 된다. 리눅스에서 Quota 설정 - 2장: 사용자들에게 할당량을 부여하기 =========================================================== 이것은 edquota명령으로 행해진다. 예를들면 "edquota bob"이란 명령을 사용함으로써 vi에디터(또는 $EDITOR 환경변수에 설정한 에디터)로 quota가 설치된 각 파티션의 "bob"이라는 사용자의 할당량을 수정할 수 있다. Quotas for user bob: /dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400) inodes in use: 356, limits (soft = 1000, hard = 1500) "blocks in use"는 사용자가 사용중인 한 파티션의 총 블럭(kilobyte단위)을 의미한다. "inodes in use"는 사용자가 사용중인 전체 화일의 개수이다. edquota에서 당신은 Soft Limit, Hard Limit, 유예 기간(Grace Period)이라는 단어를 알아야한다. Soft Limit 일반적으로 soft limit는 한 사용자가 사용할 수 있는 최대 용량을 가리킨다. 그러나 유예 기간(grace period) 내에 있어서는 사용자는 사용용량 초과에 대해서 경고를 받게되는 경계선처럼 동작한다. Hard Limit hard limit는 유예 기간(grace period)이 설정되어 있을때에만 동작한다. 이것은 디스크의 최대 사용용량을 의미한다. 즉, 사용자는 hard limit 용량 이상을 사용할 수 없다. Grace Period 유예 기간은 사용자의 사용 용량이 soft limit용량을 넘은 후부터 적용되는 시간 제한이다. 시간은 sec(onds), min(utes), hour(s), day(s), week(s), month(s) 단위로 사용할 수 있다. "edquota -t"명령을 실행하면 유예 기간을 보거나 수정할수 있다. Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda2: block grace period: 0 days, file grace period: 0 days "0 days"부분을 적당한 기간으로 바꿔준다. 개인적으로는 7일( "7 days" or "1 week" )로 설정해 주었다. ---------------------------------------------------------------------------- 기타 Quota 명령어 Quotacheck Quotacheck는 화일시스템의 디스크 사용상태를 검색하거나 quota기록화일인 "quota.user"화일을 최근의 상태로 갱신하기 위해 사용한다. 나는 quotacheck를 정기적으로(1주?) 시스템을 부팅할때나 cronjob을 통해서 실행할것을 권한다. Repquota Repquota는 화일시스템의 quota 를 간략화해서 보여준다. repquota가 출력하는 예제가 있다. # repquota -a Block limits File limits User used soft hard grace used soft hard grace root -- 175419 0 0 14679 0 0 bin -- 18000 0 0 735 0 0 uucp -- 729 0 0 23 0 0 man -- 57 0 0 10 0 0 user1 -- 13046 15360 19200 806 1500 2250 user2 -- 2838 5120 6400 377 1000 1500 Quotaon and Quotaoff Quotaon은 quota를 가동시킬때 사용한다. 반대로 quotaoff는 중단시킬때 사용한다. 실제로 이 두화일은 비슷하다. 이것들은 시스템이 부팅되거나 셧다운될때 수행된다. --------------------------------------------------------------끝 그런데..ftp로 글 올리기가 안되네요. |