linux磁盤配額quota



Linux是一個多用戶多任務的操作系統,在使用中可能會有幾個人對服務器有操作,幾個用戶共同使用一個共享磁盤的情況,因爲我們的硬盤是有限的,我們需要對用戶的空間進行限制。這裏使用磁盤配額,可以很方便的對用戶的空間進行額度限制。



1:加入一塊硬盤,分出一個主分區:



[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa03faa82.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2610, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
Using default value 2610
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa03faa82
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2610    20964793+  83  Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.


2.格式化分區並掛載

[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkdir /data   ##創建一個用戶共享使用的目錄
[root@localhost ~]# mount /dev/sdb1 /data/   ##將分區掛載到共享目錄
[root@localhost ~]# mount    ##查看掛載情況
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /data type ext4 (rw)



    寫入到開機掛載裏面

[root@localhost ~]# vi /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
/dev/sdb1               /data                   ext4    defaults        0 0


3.重新掛載使文件目錄支持磁盤配額:

[root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1
[root@localhost ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /data type ext4 (rw,usrquota,grpquota)   ##再次查看分區掛載可以看到支持+磁盤配額


     同樣使它開機掛載支持磁盤配額:

[root@localhost ~]# vi /etc/fstab 
[root@localhost ~]# tail -1 /etc/fstab
/dev/sdb1               /data                   ext4    defaults,usrquota,grpquota        0 0


3。下載磁盤配額軟件:

[root@localhost ~]# yum -y install quota


4.生成磁盤配額的數據庫文件:

[root@localhost ~]# quotacheck -ugvc /data/
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/data] done
quotacheck: Cannot stat old user quota file /data/aquota.user: 沒有那個文件或目錄. Usage will not be substracted.
quotacheck: Cannot stat old group quota file /data/aquota.group: 沒有那個文件或目錄. Usage will not be substracted.
quotacheck: Cannot stat old user quota file /data/aquota.user: 沒有那個文件或目錄. Usage will not be substracted.
quotacheck: Cannot stat old group quota file /data/aquota.group: 沒有那個文件或目錄. Usage will not be substracted.
quotacheck: Checked 2 directories and 0 files
quotacheck: Old file not found.
quotacheck: Old file not found.

    查看生成的磁盤配置數據庫文件

[root@localhost ~]# ls /data/
aquota.group  aquota.user  lost+found


5.新建需要限制的用戶和組:

[root@localhost ~]# useradd u01   ##新建用戶
[root@localhost ~]# useradd u02
[root@localhost ~]# echo "123123" |passwd --stdin u01
更改用戶 u01 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@localhost ~]# echo "123123" |passwd --stdin u02
更改用戶 u02 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@localhost ~]# groupadd g01    ##新建組
[root@localhost ~]# usermod -g g01 u01   ##將用戶加入組
[root@localhost ~]# usermod -g g01 u02
[root@localhost ~]# id u01   ##確認用戶信息
uid=500(u01) gid=502(g01) 組=502(g01)
[root@localhost ~]# id u02
uid=501(u02) gid=502(g01) 組=502(g01)


6.對用戶進行額度配置:


             setauota   -u 用戶 或(-g 組)  大小軟限制 大小硬限制  數量軟限制  數量硬限制  對哪個目錄

                ##大小限制的單位是kb,軟限制是當達到這個限制時,再創建文件或導入數據,會出現提示信息,不過還可以再往裏面新建。當到達硬限制時,就真的無法創建了。

[root@localhost ~]# setquota -u u01 10000 15000 10 15 /data/

            


7.開啓磁盤配額:    重啓系統也可以

[root@localhost ~]# quotaon -a

 給所有人可寫入權限即可,要在其他用戶新建文件測試

[root@localhost ~]# chmod 777 /data/
[root@localhost ~]# su - u01   ##切換到u01
[u01@localhost ~]$ touch /data/{1..20}.mp3     ##新建20個文件
sdb1: warning, user file quota exceeded.     ##這個到達軟限制,有提醒
sdb1: write failed, user file limit reached.     ##這個到達硬限制,提示寫入錯誤
touch: 無法創建"/data/16.mp3": 超出磁盤限額
touch: 無法創建"/data/17.mp3": 超出磁盤限額
touch: 無法創建"/data/18.mp3": 超出磁盤限額
touch: 無法創建"/data/19.mp3": 超出磁盤限額
touch: 無法創建"/data/20.mp3": 超出磁盤限額


  最後查看目錄,發現創建了15個文件,這個15是硬限制的設置

[u01@localhost ~]$ ls /data/         
10.mp3  12.mp3  14.mp3  1.mp3  3.mp3  5.mp3  7.mp3  9.mp3         aquota.user
11.mp3  13.mp3  15.mp3  2.mp3  4.mp3  6.mp3  8.mp3  aquota.group  lost+found
[u01@localhost ~]$ exit
logout

給組配置額度:

[root@localhost ~]# setquota -g g01 15000 20000 15 20 /data/


切換到u02測試:

[root@localhost ~]# su - u02
[u02@localhost ~]$ touch /data/{1..10}.txt
sdb1: write failed, group file limit reached.
touch: 無法創建"/data/6.txt": 超出磁盤限額
touch: 無法創建"/data/7.txt": 超出磁盤限額
touch: 無法創建"/data/8.txt": 超出磁盤限額
touch: 無法創建"/data/9.txt": 超出磁盤限額
touch: 無法創建"/data/10.txt": 超出磁盤限額


發現只創建了5個文件,就不能再創建了。因爲剛纔對組進行了限制20個數量的硬限制,而u01、u02都在g01組裏面,u01的15個文件已經存在了,所以u02只能創建五個了。

[u02@localhost ~]$ ls /data/
10.mp3  12.mp3  14.mp3  1.mp3  2.mp3  3.mp3  4.mp3  5.mp3  6.mp3  8.mp3  aquota.group  lost+found
11.mp3  13.mp3  15.mp3  1.txt  2.txt  3.txt  4.txt  5.txt  7.mp3  9.mp3  aquota.user
[u02@localhost ~]$ exit
logout
[root@localhost ~]#


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章