본문 바로가기
Linux & UNIX

quota 명령어

by fabxoe 2019. 9. 19.
useradd -d /userHome/john john 
useradd -d /userHome/bann bann 

passwd john 
passwd bann 

 

/dev/sdb1  	/userHome  		ext4   defaults,usrjquota=aquota.user,jqfmt=vfsv0		0 0

fstab을 열어서  defaults에 내용을 추가한다.

이상하고 복잡해 보이는 명령어지만 사용자별로 용량을 제한하는 파일시스템으로 하겠다는 의미를 가지고 있다.

 

mount --options remount /userHome

재부팅을 해서 작성한 내용을 인식시키는 것 대신에

다시 마운트하였다.

 

cd /userHome	//쿼터용 파일 시스템이 마운트된 디렉터리로 이동한다.
quotaoff -avug	//일단 쿼터를 끈다
quotacheck -augmn	//파일 시스템의 쿼터 관련 체크를 한다.
rm -rf aquota.*			//생성된 쿼터 관련 파일을 일단 삭제 한다.
quotacheck -augmn			//다시 파일 시스템의 쿼터 관련 체크를 한다.
touch aquota.user aquota.group	//쿼터 관련 파일을 생성한다.
chmod 600 aquota.*	//보안을 위해 소유자(root)외에는 접근하지 못하게 한다.
quotacheck -augmn	//마지막으로 파일 시스템의 쿼터 관련 체크를 한다.
quotaon -avug		//설정된 쿼터를 시작한다.
user quotas turned on

quota DB를 만들었다.

quotacheck(파일시스템을 스캔해서 쿼터파일을 생성, 확인, 수정)와 quotaon/quotaoff의 옵션은 다음과 같다

-a    모든 파일시스템을 체크한다

-u    사용자 쿼터 관련 체크를 한다

-g    그룹 쿼터 관련 체크를 한다

-m   재마운트를 생략한다

-n    첫번째 검색된 것을 사용한다

-p    처리결과를 출력한다

-v     파일시스템의 상태를 보여준다.

 

edquota -u john

특정사용자에게 할당한다는 의미이다.

자동으로 vi에디터로 열린다.

 

 Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                        28       10240      15360          7        0        0

inodes 왼쪽에 soft와 hard는 기억공간의 크기범위를 설정해주는 것과 관련있는데

soft의 크기를 넘는 것은 7일간은 허용된다면 hard는 절대로 넘을 수 없는 크기이다.

 

 

원래 의도했던 사용자마다 공간을 적당히 나눠쓰는 기능을 사용했을때 만족감보다는

파일 복사중에 공간한정으로 인해서 작업이 멈추는 상황이 누군가에게는

차라리 겪고 싶지 않은 일일수도 있고 금전적인 리스크일수 있기 때문에 이러한 설정을 만들어 두었다고 한다.

 

su - john
cp /boot/vmlinuz-3.10.0-123.el7.x86_64  test1
cp test1 test2
cp test1 test3

테스트를 위해서 일부러 soft인 10MB을 넘기는 작업을 해보았다. 

 

sdb1: warning, user block quota exceeded. 라는 에러가 발생함에도

ls -l을 보면 test1, test2, test3 모두 다 정상적으로 같은 크기의 파일들로 존재함을 확인할 수 있다.

 

 

cp test1 test4

 

sdb1: write failed, user block limit reached.
cp: `test4'에 쓰는 도중 오류 발생: 디스크 할당량이 초과됨
cp: failed to extend `test4': 디스크 할당량이 초과됨
[john@localhost ~]$ 

한번 더 진행 했을때는

hard인 15MB를 넘겨서 오류가 발생함을 확인할 수 있다.

이때 test4의 용량은 다른 파일보다 작아서 정상적인 상태의 파일이 아니다.

 

또한 test3도 soft를 넘어 섰기에 7일안에 처리를 해줘야 한다.

 

quota

Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
 /dev/sdb1   15360*  10240   15360   6days      16       0       0  

위처럼 quota 명령어를 사용하면 현재 내 할당량에 대한 정보와 처리기한등을 확인 할 수 있다.

여기서 quota가 soft이고 limit이 hard이다.


repquota /userHome

quota처럼 보여주는게 아니라 모든 유저의 quota정보를 리스트형식으로 확인할 수 있다.

 

edquota -p john bann

soft와 hard를 또 vi에서 작성하는 것 대신에, 그냥 편리하게 

soft, hard 할당값을 다른 사용자로 부터 그대로 복사한다.

 

댓글