quota 한방 잡기
작성자 관리자 작성시간 2006-04-25 00:05:33
 

quota 한방 잡기

제공 : howtosolaris.com

quota란 멀티 환경의 다중 사용자에게 하드디스크에 생성할수 있는 용량이나 파일 갯수의
제한을 두는데 사용 됩니다.
쓰잘데기 없이 파일이 많은 친구들이나 (대부분 이상한 파일만 있겠죠)
꼴보기 싫은 인간들에게 사용량을 제한해 봅시다.

자 그럽 갑니다.

먼저 quota를 설정할 디렉터리를 정 합니다. 그런후 /etc/vfstab에 다음과 같이 작성 합니다.
아래의 예는 go 디렉터리를 quota로 지정한 예 입니다.

/dev/dsk/c0t1d0s0 /dev/rdsk/c0t1d0s0 /go ufs 2 yes rq

다른 파일 시스템 작성 파일과 다른게 없지만 마지막 부분의 mount option부분이 rq 임을
명심 하셔야 합니다.

여그서 옵션 r은 read-only 를 나타내구 q는 quota 파일임을 나타 냅니다.

그런후 go 디렉 터리로 갑니다.

# cd go
# touch quotas
# chmod 600 quotas

자 이제 사용자의 quota를 지정 합니다.

예를 들어 moon 이라는 사용자에게 200MB 의 디스크공간을 go디렉터리에서 할당 하려면

# edquota moon
fs /go blocks (soft = 200000, hard = 250000) inodes (soft = 0, hard = 0)

여그서 blocks 부분은 용량의 제한을 나타내고 inodes은 파일 갯수의 제한을 의미 합니다.

위의 예는 용량만 제한을 둔 것입니다.

edquota 명령어를 사용 하게 되면 blocks 나 inodes는 기본 값이 0 입니다.

0은 무제한을 의미 합니다 .

위의 예에서 보면 hard = 250000 이라 표시 했습니다.

이것은 moon이라는 유저가 200MB는 넘을수 있지만 250MB를 넘지 못한다는 의미 입니다.


자 이제 quota deamon을 구동해 봅니다.

# sh /etc/init.d/ufs_quota start

< quota 확인 방법 >

# quota -v moon ----> moon유저의 quota설정을 봅니다.
Disk quotas for moon (uid 2003):
Filesystem usage quota limit timeleft files quota limit timeleft
/go 2 200000 200000 2 0 0

# repquota -a ----> 사용자별 quota 설정을 봅니다.
/dev/dsk/c0t1d0s0 (/go):
Block limits File limits
User used soft hard timeleft used soft hard timeleft
core -- 2 200000 200000 2 0 0
moon -- 2 400000 400000 4 0 0



< 끝내주는 tip >
아 제가 알고 있는 꽁수를 하나 알켜 드립니다.
만약에 사용자의 quota를 똑같이 정하고 싶은데 사용자 많다고 가정 해 봅시다.
그렇다면 위와 같은 방법을 상용자별로 일일이 해야 하나여...
awk를 잘 사용 하시면 간단하게 그문제를 해결 할수 있습니다.

만약에 /etc/passwd 파일의 사용자 UID가 1002부터 시작 된다고 가정 한다면 다음과 같이
1002 UID이후의 사용자에게 quota가 설정 되어있는 moon 유저의 설정을 적용 할수 있습니다.

# awk -F: '{if ($3 > 1003) {print "edquota -p 1002 " $1}}' /etc/passwd | sh


목록 | 입력 | 수정 | 답변 | 삭제