centos 사용자 디스크 사용 할당량

9174 단어
디스크 할당량은 사용자가 사용할 수 있는 디스크 공간을 제한하고 사용자가 사용할 수 있는 디스크 공간의 크기를 제한합니다.디스크 할당량 설정 대상은 읽기와 쓰기 작업을 수행할 수 있는 블록 장치이며 정확한 파일 시스템이 있어야 한다.디스크 할당액은 사용자와 그룹의 접근 행위를 제한할 수 있다. 예를 들어 지정된 사용자를 위해 디스크 사용량을 제한하거나, 디스크 공간을 통해 제한하거나 (Block의 제한은 1KB 저장 공간을 대표한다),inode를 통해 제한할 수 있다.또한 지정된 그룹의 모든 구성원에 대한 디스크 사용량의 합계를 그룹으로 직접 제한할 수도 있습니다.
디스크 할당량을 제한할 때 두 가지 방식이 있다. 첫 번째는soft limit-소프트 제한이다. 이런 제한은 사용자의 디스크 사용량이 소프트 할당량 제한에 도달하면 유예기간 카운트다운을 시작한다.카운트다운이 0으로 돌아가기 전에 사용자는 남은 할당량을 정상적으로 사용할 수 있지만 카운트다운이 0으로 돌아가면 사용자는 데이터를 정리하지 않고 소프트 제한보다 낮으면 디스크 공간을 계속 사용할 수 없다.즉, 사용자가 사용한 디스크 공간이 제한된 상한선에 도달한 후에 알림을 하고 일정 시간이 지나도 바뀌지 않으면 다시 처리한다는 것이다.이와 상대적으로 하드 제한이다. 이런 제한은 사용자가 사용할 수 있는 디스크 공간의 진정한 상한이다. 이 상한에 도달하면 알림을 주지 않고 사용자에게 직접 처리한다. 처리하는 방법은 사용자가 디스크를 사용할 권리를 닫는 것이다.일반적으로 소프트 제한은 하드 제한의 수치보다 약간 작다. 예를 들어 소프트 제한은 90M, 하드 제한은 120M일 수 있다.일반적으로 한 시스템에서 소프트웨어, 하드웨어 제한이 모두 존재한다. 즉, 먼저 사용자에게 알림을 하면 사용자는 계속 사용할 수 있지만 사용자는 하드웨어 제한에 도달할 수 없다.Linux에서 기본 유예기간은 7일입니다. 사용자가 소프트 제한에 도달하면 7일 동안 디스크를 계속 사용할 수 있으며, 7일이 지나면 강제로 처리됩니다.
섹션이나 볼륨이 디스크 할당량을 지원할 수 있도록 하려면, 마운트할 때 usrquota와grpquota 두 옵션을 추가해야 합니다.
먼저 마운트할 수 있는 디스크를 만듭니다. 예를 들어 시스템에 디스크/dev/sdc가 있습니다. 이 디스크에 fdisk/dev/sdc 명령을 사용하여/dev/sdc1 디스크를 만듭니다.
[root@localhost ~]# fdisk /dev/sdc
     fdisk (util-linux 2.23.2)。
         ,            。
          。
Device does not contain a recognized partition table
        0x9de7a864      DOS     。
  (   m     ):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
    (1-4,   1):
      (2048-41943039,    2048):
       2048
Last   , +   or +size{K,M,G} (2048-41943039,    41943039):
       41943039
   1      Linux   ,     20 GiB
  (   m     ):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
      。
[root@localhost ~]#

설정한 후 포맷하고 ext4 파일 시스템을 설치합니다.
[root@localhost ~]# mkfs.ext4 /dev/sdc1
mke2fs 1.42.9 (28-Dec-2013)
      =
OS type: Linux
   =4096 (log=2)
    =4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
      =0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000
Allocating group tables:                               
    inode :                               
Creating journal (32768 blocks):   
Writing superblocks and filesystem accounting information:   

그런 다음 마운트 지점을 설정합니다.
[root@localhost ~]# mkdir /tmp/sdc

설정한 후에 이 마운트 지점에 디스크를 마운트할 수 있습니다. 그러나 여기서 주의해야 할 것은 usrquota와 grpquota 옵션을 추가해야만 사용자 할당량을 사용할 수 있습니다. 형식은 다음과 같습니다.
~]# mount -o usrquota,grpquota DEVICE MOUNT_POINT

또는/etc/fstab 파일에 다음을 기록합니다.
DEVICE MOUNT_POINT FSTYPE defaults,usrquota,grpquota 0 0

예를 들면 다음과 같습니다.
[root@localhost ~]# mount -o usrquota,grpquota /dev/sdc1 /tmp/sdc/

mount 명령을 사용하여 마운트의 세부 내용을 보면/dev/sdc1의 마운트 정보가 많고 usrquota와 grpquota 옵션이 있습니다.
[root@localhost ~]# mount | grep "/sdc1"
/dev/sdc1 on /tmp/sdc type ext4 (rw,relatime,seclabel,quota,usrquota,grpquota,data=ordered)
[root@localhost ~]#

이상의 마운트 작업을 한 후에 이 디스크에서 사용자의 할당액 관리를 할 수 있습니다.할당액 관리를 하려면 두 가지 중요한 파일이 필요합니다. 하나는 aquota입니다.그룹, 이 파일은 그룹에 대한 할당량을 위한 것입니다.또 하나는 aquota.사용자, 이 파일은 사용자에 대한 할당량을 위한 것입니다.디스크를 새로 마운트한 후에는 두 파일이 없습니다. 다음 명령을 사용하여 생성해야 합니다.
quotacheck 명령:
quotacheck  -  scan  a filesystem for disk usage, create, check and repair quota files
옵션:
-v, --verbose: 전체 조작 과정의 상세한 정보를 표시합니다
-u, --user: 사용자 할당량 파일 생성, 감지 및 복구
-g, -group: 그룹 할당량 파일 생성, 검사 및 복구
-c,--create-files: 검사를 통해 사용자 할당 파일이나 그룹 할당 파일이 없으면 사용자가 지정한 옵션을 설치하여 파일을 생성합니다.
-a,--all:/etc/fstab 파일에 할당액과 관련된 마운트 옵션을 포함하는 모든 장치에 대응하는 할당액 파일이 있는지 여부;
이 명령을 사용하면 두 개의 파일이 생성됩니다.
[root@localhost ~]# quotacheck -u -g /tmp/sdc/
[root@localhost ~]# ls /tmp/sdc/
aquota.group  aquota.user  lost+found
[root@localhost ~]#

이 두 파일은 각각 자신의 기능을 가지고 있다. 물론 사용자에 대한 할당액만 필요하다면aquota가 필요하지 않다.그룹 이 파일은 반대로 사용할 때 자신의 필요에 따라 명령을 사용합니다.
이 두 파일을 생성한 후 사용자 또는 그룹에 디스크 할당량을 할당할 수 있습니다. 사용되는 명령은 다음과 같습니다.
edquota
-u, --user: 사용자 할당량, 기본 기능 작성;
-g, -group: 그룹 할당량을 작성하여 사용하지 않음;
-t,--edit-period: 소프트 제한을 초과한 기한을 설정합니다.기본 7일은 초, 분, 시간, 천등 시간 단위로 선택할 수 있습니다.
이 명령을 사용할 때, 예를 들어 사용자 '테스트' 의 할당량을 제한합니다.
[root@localhost ~]# edquota -u test

이 명령이 실행된 후에vim의 인터페이스에 들어갑니다. 우리는 이 인터페이스에서 사용자의 할당량을 수정할 수 있습니다.
Disk quotas for user test (uid 1006):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdc1                        0         0         0        0        0        0
~                                                                                                                                                                          
~                                                                                                                                                                          
~

                                                                                                                                         
이vim인터페이스에서 우리는 수정할 수 있는 옵션이 블록수(파일의 크기, 단위는 KB)의 소프트 제한과 하드 제한, 그리고inode의 소프트 제한과 하드 제한이 있음을 볼 수 있다. 여기서 나는 블록수의 소프트 제한과 하드 제한을 수정한다. 수정 방법은 직접 수치를 수정한 다음에 이 파일을 저장하면 된다.
Disk quotas for user test (uid 1006):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdc1                       0       1000       2000        0        0        0
~                                                                                                    
~                                                                                                    
~

 
수정 사항을 저장하고 나면 다음 명령을 사용하여 할당량 기능이 유효하거나 유효하지 않게 해야 합니다.
quotaon(할당 기능 효력 발생), quotaoff(할당 기능 실효)
    quotaon, quotaoff - turn filesystem quotas on and off
첫 번째 방법은 디스크를 지정하지 않는 것입니다.
[root@localhost ~]# quotaon -avug
/dev/sdc1 [/tmp/sdc]: group quotas turned on
/dev/sdc1 [/tmp/sdc]: user quotas turned on
[root@localhost ~]#
[root@localhost ~]# quotaoff -avug
/dev/sdc1 [/tmp/sdc]: group quotas turned off
/dev/sdc1 [/tmp/sdc]: user quotas turned off
[root@localhost ~]#

또는 직접 디스크를 지정합니다.
quotaon|quotaoff /dev/sdb1

할당량 사용 보기
quota: 사용자의 디스크 할당량을 표시합니다. 뒤에 사용자의 이름을 따라가야 합니다.
quota - display disk usage and limits
[root@localhost sdc]# quota test
Disk quotas for user test (uid 1006): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdc1    2000*   1000    2000   6days       2       0       0        
[root@localhost sdc]#

이 예에서 나는 블록 수의 소프트 제한을 1M으로 바꾸고 하드 제한을 2M으로 바꾸었다. 저장한 후에 현재 사용자를test로 전환한 후에 이 사용자가 dd 명령을 통해 1M 파일을 만들 수 있다. (만들기 전에 이 사용자에게 이 파일에 쓰기 권한이 있는지 확인해야 한다. 부여할 권한이 없다면)
[test@localhost sdc]$ dd if=/dev/zero bs=1024 count=2000 of=/tmp/sdc/FILE1_2M
   2000+0    
   2000+0    
2048000  (2.0 MB)   ,0.00675606  ,303 MB/ 

이 때/tmp/sdc 파일에서 테스트 사용자가 사용하는 디스크 공간이 2M의 공간을 차지합니다. 이 명령을 다시 사용하면 오류가 발생합니다.
[test@localhost sdc]$ dd if=/dev/zero bs=1024 count=2000 of=/tmp/sdc/FILE2_2M
sdc1: write failed, user block limit reached.
dd:   "/tmp/sdc/FILE2_2M"   :       
   1+0    
   0+0    
0  (0 B)   ,0.000285576  ,0.0 kB/ 
[test@localhost sdc]$

repquota: 디스크 할당액의 사용 상황을 보십시오. 루트 사용자만 사용할 수 있습니다
repquota - summarize quotas for a filesystem
[root@localhost sdc]# repquota -avug
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0      0               2    0     0       
test      +-     2000    1000    2000  6days      2    0     0       
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
*** Report for group quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --    1020       0      0            3    0    0       
test      --    2000      0      0            2    0    0       
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000
[root@localhost sdc]#

주의: 디스크 할당량을 사용할 때 어떤 조작을 하든지 루트는 디스크 할당량의 제한을 받지 않고 최대 루트 사용자에게만 알림을 할 수 있기 때문에 루트의 권한은 매우 크기 때문에 필요할 때 루트 사용자를 사용해서 로그인하지 마십시오.
전재 대상:https://blog.51cto.com/11142243/1940587

좋은 웹페이지 즐겨찾기