Linux
리눅스 - quota 설치 및 설정
quota 설치
quota 설정은 사용자의 디스크용량을 제한하기 위해 사용하는 기능으로 사용자의 불필요한 디스크사용량이나 무리한 서버사용을 줄일 수 있는 효과가 있습니다. quota 는 리눅스 설치시 기본적으로 설치가 되며 quota 설정을 적용시키기 위해 재부팅이 필요합니다. 혹시 모르니 패키지가 설치되어있는지 다음과 같은 명령어로 확인을 해봅니다.# rpm -qa | grep quota
설치가 필요하다면 다음의 명령어로 설치할 수 있습니다.
# yum -y install quota
또는...
# rpm -Uvh quota-version.i386.rpm
quota 설정을 추가하기 위해 /etc/fstab 파일에 아래 내용을 추가해 줍니다.
/dev/hda6 /home ext2 defaults,usrquota 1 2
/dev/hda6 은 파일시스템경로이고, /home 은 사용자의 데이터가 저장되는 홈디렉토리의 예입니다. defaulits 만 기재되는 파티션 정보란에 usrquota 라는 설정정보가 포함되어 있지만 사용자가 아닌 그룹으로 하려면 grpquota 로 설정하면 됩니다.
파티션에 설정에 관한 내용을 기재하였으므로 이제 설정을 마무리하기 위해 최상위 디렉토리 /home 디렉토리에 quota.user 파일을 생성하여야 합니다. 다음과 같은 명령어로 파일을 생성합니다.
[root@admin] cd /home
[root@admin /home] touch quota.user
[root@admin /home] chmod 600 quota.user
[root@admin /home] ls -l
처음 quota 파일은 아무 내용이 없으며 실행권한은 600 으로 하고, root 사용자만 자료 변경권한을 주도록 합니다. test 는 사용자 아이디입니다. 이제 설정을 완료하였으므로 서버를 재부팅시켜 줍니다.
quota 설정
설정기능은 3가지 명령어로 설정작업을 할 수 있는데, 내용은 다음과 같습니다.- edquota : 사용자별 디스크 사용공간을 제한하는 기능
- quotacheck : 실제 설정의 내용을 반영시키기위한 명령어
- repquota : 실제 사용자에게 디스크사용제한이 어떻게 제한되고 있는지를 확인하는 명령어
edquote 명령어로 디스크공간을 제한되도록 디스크공간을 설정하여 줍니다. 처음 한 계정에 대한 설정을 등록해주면 다른 계정에 동일한 설정값을 쉽게 설정해 줄 수 있습니다.
# edquota -u test1
다음 그림은 명령 수행후 사용자 용량 설정 그림입니다. soft 는 실제 디스크 용량의 제한을 나타내는 크기이고, 이 용량을 넘을 경우 일정 기간동안 경고 메시지를 출력합니다. 또한 기간이 경과하면 자료의 손실이 발생하므로 이전에 자료를 정리할 필요가 있습니다.
hard 는 시간제한사항이 설정되면 적용되는 제한사항으로 디스크 최대용량이 표시됩니다. 단위는 kb 이므로 2048은 2mb 가 됩니다.
Quotas for user test1:
/dev/hda6: blocks in use: 20, limits (soft = 2048, hard = 4096)
inodes in use: 1887, limits (soft = 100, hard = 200)
~
~
"/tmp/EdP.aDI2bkQ" 3 lines, 139 characters written
blocks in use: 20 현재사용 디스크량(Kbyte)
soft = 0 soft limit(block) 최대 디스크용량
hard = 50000 hard limit(block) 최대 디스크용량의 절대치
inodes in use: 1887 현재 inode 사용량
soft = 0 soft limit(inode) 최대 파일(디렉토리)수
hard = 0 hard limit(inode) 파일(디렉토리)의 절대치
다음 quota -t 옵션은 시간제한 설정을 할 수 있으며 soft, hard 제한을 구분하여 적용 가능하도록 이용됩니다.
설정은 sec(onds), min(utes), hour(s), week(s), month 단위로 표기하여 초, 분 시, 주, 달을 나타냅니다. 시간에 대한 설정 및 변경은 다음의 명령어를 사용할 수 있으며 초기 설정은 7days 입니다.
# edquota –t
Grace period before enforcing soft limits for users:
/dev/hda6: Block grace period: 7days, file grace period: 7days
quotacheck 명령어는 설정을 반영하는 명령어입니다. 옵션은 다음과 같습니다.
- -a 옵션: 파일 시스템 사용자의 디스크사용정보를 추가하는 옵션
- -v 옵션: 정보를 표시
- -u 옵션: 사용자정보를 바탕으로 파일 및 디렉토리를 찾는 옵션
- -g 옵션: 그룹정보를 바탕으로 파일 및 디렉토리를 찾는 옵션
quotacheck -avug 옵션을 많이 사용하는데, 이 옵션으로 다음의 결과를 얻을 수 있습니다.
# quotacheck -avug
Scanning /home [/home] done
Checked 6 directories and 17files
Using quotafile /home/quota.user
Updating in-core user quotas
위 명령어는 주기적으로 변화하는 사용자의 디스크사용량을 체크하도록 하는 명령어로 디스크정보를 반영하기 위해서는 cron 데몬에 추가하여, 주기적으로 실행하도록 하여야 합니다. 다음은 repquota -a 명령어입니다.
# repquota -a
*** Report for user quotas on device /dev/hda6
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 2126544 0 0 6538 0 0
daemon -- 182004 0 0 248 0 0
nobody -- 767976 0 0 1496 0 0
#200 -- 962324 0 0 6831 0 0
#502 -- 109895212 0 0 796706 0 0
#503 -- 277896 0 0 661 0 0
#504 -- 747108 0 0 4597 0 0
#505 -- 73168 0 0 383 0 0
#506 -- 46352 0 0 1255 0 0
실제 사용자에게 디스크 사용제한이 어떻게 제한되고 있는지를 보여주는 것이며 혹 동일한 조건의 용량제한을 할 경우 계속적 반복작업을 하는 것은 번거로운 것이므로 edquota -p test1 test2 test3 test4 와 같은 형식의 명령어을 사용하면 편리합니다.
# edquota -p test1 test2 test3 test4
# repquota -a
*** Report for user quotas on device /dev/hda6
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
-----------------------------------------------------------------------------------------------
test1 -- 16 0 0 3 0 0
test2 -- 10 10000 10240 7 10000 10240
test3 -- 9 10000 10240 6 10000 10240
다음은 quota 에 v 옵션의 결과입니다.
# quota -v test1
Disk quotas for user test1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda6 109895212 0 0 796706 0 0
0 댓글