Linux磁盘配额应用
磁盤配額
網站服務 ?針對網站服務域名空間上一般會設置配額限制;
郵件服務 針對郵件服務每個郵箱用戶設置磁盤配額限制;
文件服務 針對文件服務器,每個用戶設置配額限制;
Home家目錄 針對家目錄設置磁盤配額限制
其他諸如NFS、ftp等服務;
quota簡介
什么是quota?什么是磁盤配額?在Linux操作系統中,由于是多人工作環境,多個用戶共同使用一個分區,在沒有限配額制下,占用存儲多的用戶就會侵占其他用戶的存儲權利,造成其他用戶的使用不便;而磁盤配額就是為了解決這個問題,在root環境下通過quota指令設置磁盤配額;
quota主要應用環境
quota相關指令
2.1、quota指令
quota ? --顯示磁盤的使用和限制
參數:
-g ?顯示用戶所在組的組配額限制
-u 缺省顯示當前用戶的配額限制,指定用戶則顯示用戶配額限制;
-v 顯示文件系統上的配額限制,即使沒有占用空間
-q 只顯示超出限額的文件系統
只有root可以使用-u參數,普通用戶可以使用-g參數查看用戶所在組的配額限制;
2.2、quotacheck ?掃描文件系統,創建、檢測、修復配額文件;
參數:
-d ? ? ?進入調試狀態.這會產生許多用于調試程序的信息.輸出的信息非常詳盡,而掃描速度會減慢;
-a ? ? 如果用它取代任何文件系統的名字, quotacheck 將檢測所有在 /etc/mtab 中列為可讀寫 的文件系統的配額.在缺省狀態下,只有在 /etc/mtab 中被列為配額的文件系統才會被檢測.
-u ? ? 只檢測在 /etc/mtab 列出或指定的文件系統中的用戶配額.這是缺省狀態下采取 的 行動
-R ? ? 當與 -a 一起使用時,檢測除根(root)文件系統外的其他所有文件系統.
-i ? ? 交互模式.在缺省狀態下, quotacheck 在發現錯誤后即退出.在交互模式下,用戶會被問取建議. ?參考選項 -n.
-n ? ? 有時候對同一個ID會找到多個結果. 通常遇到這種情況 quotacheck 就終止運行.該 選項強制使用第一個結果(該選項在交互模式下同樣有效).
2.3、edquota ? ? - 編輯用戶配額
參數:
-u ? ? 編輯用戶配額.這是默認的選項.
-g ? ? 編輯組配額.
-p ? ? ?對每個指定的用戶/組的原配額加倍. ?這是用來對一組用戶/組初始化配額時常用的方法.
FILES(相關文件)
位于文件系統root下的aquota.user 或 aquota.group 配額文件.
/etc/mtab ? ? ? ? ? 已掛載的文件系統表
2.4、quotaon ?-- - 開啟關閉文件系統配額
參數:
-e ? ? 開啟指定文件系統配額。 當程序名是 quotaon 時, 此選項是默認的。
-d ? ? 關閉指定文件系統配額。 當程序名是 quotaoff 時, 此選項是默認的。
-a ? ? ?當 用 在 任 何 文 件 系 統名稱的地方時, quotaon/quotaoff 將允許/禁止所有在/etc/mtab 中指定的文件系統為有磁盤配額的讀-寫。 這個選項一般被用在系統啟動時開啟配額。
-v ? ? 為每個開啟或關閉配額的文件系統顯示一條消息。
-u ? ? 處理用戶配額。 這是默認選項。
-g ? ? 處理組配額。
相關文件 (FILES)
aquota.user ? ? ? ? 文件系統根目錄下的用戶配額文件
aquota.group ? ? ? ?文件系統根目錄下的組配額文件
/etc/mtab ? ? ? ? ? 已裝載的文件系統表
quotaoff ? 啟關閉文件系統配額
參數:
于quotaon相同
三、home分區進行磁盤配額限制
3.1、由于配額針對分區,為了體驗賬戶管理和權限管理,掛載一個新的分區,進行home遷移;
1)/home分區遷移
2)針對home分區進行磁盤配額限制;
3)設置用戶配額;
4)編輯群組可用的配額;
5)設置開機啟動quota;
6)requota顯示quota信息
3.2、/home分區遷移
1)備份home分區;
[root@woon /]# mkdir /homebak
[root@woon /]# cp -a /home/* /homebak/
2)格式化sdb為ext4;
[root@woon ~]# fdisk l
Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 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: 0x00000000
[root@woon /]# ls -la /dev/sdb*
brw-rw----. 1 root disk 8, 16 2月 ?10 20:19 /dev/sdb
brw-rw----. 1 root disk 8, 17 2月 ?10 20:19 /dev/sdb1
[root@woon /]# mkfs.ext4 /dev/sdb1
3) 建立/dev/sdb1配額支持;
[root@woon /]# vi /etc/fstab
添加
/dev/sdb1 ? ? ? ? ? ? ? /home ? ? ? ? ? ext4 ? ? ? ? ? ?defaults,userquota,grpquota ? ? 0 ?0
4)將sdb1掛載在/home下
root@woon /]#rm rf /home/*
root@woon /]#mount /dev/sb1 /home
root@woon /]#cp a ?/homebak/* /home/
root@woon /]#mount a
[root@woon ~]# df h
Filesystem ? ? ? ? ? ?Size ?Used Avail Use% Mounted on
/dev/mapper/vg_woon-lv_root ? ? ? ? ? ? ? ?8.3G ?4.0G ?4.0G ?51% /
tmpfs ? ? ? ? ? ? ? ? 504M ? 72K ?504M ? 1% /dev/shm
/dev/sda1 ? ? ? ? ? ? 477M ? 27M ?426M ? 6% /boot
/dev/sde1 ? ? ? ? ? ? 459G ? 70M ?435G ? 1% /opt/gpt1
/dev/sdb1 ? ? ? ? ? ? ?50G ? 52M ? 47G ? 1% /home
注:如果是已經掛載的分區,可以使用mount o remount /dev/sdb1
[root@woon ~reboot
抽袋煙的功夫…………
5)生成配額文件
由于seLinux會影響quota,所以先關閉selinux
[root@woon ~]# setenforce 0
[root@woon ~]# getenforce
[root@woon ~]# quotacheck aug
查看是否生成配額文件;
[root@woon home]# ll /home
總用量 48
-rw-------. 1 root ? root ? ?7168 2月 ?10 21:03 aquota.group
-rw-------. 1 root ? root ? ?7168 2月 ?10 21:03 aquota.user
drwx------. 4 hchen ?hchen ? 4096 2月 ?10 21:02 hchen
drwx------. 2 root ? root ? 16384 2月 ?10 20:23 lost+found
drwx------. 4 woon ? woon ? ?4096 2月 ? 9 17:52 woon
drwx------. 4 woonli woonli ?4096 2月 ?10 20:39 woonli
drwx------. 4 zwen ? zwen ? ?4096 2月 ?10 21:02 zwen
6)啟動quota
[root@woon home]# quotaon -avug
/dev/sdb1 [/home]: group quotas turned on
/dev/sdb1 [/home]: user quotas turned on
編輯配額
設置用戶woon、zwen和hchen磁盤配合soft為50M,hard為55M
[root@woon home]# edquota -u woon
Disk quotas for user woon (uid 500):
Filesystem ? ? ? ? ? ? ? ? ? blocks ? ? ? soft ? ? ? hard ? ? inodes ? ? soft ? ? hard
/dev/sdb1 ? ? ? ? ? ? ? ? ? ? ? ?40 ? ? ? ?51200 ? ? 61440 ? ? ? ? 10 ? ? ? ?0 ? ? ? ?0
[root@woon home]# edquota p woon hchen
[root@woon home]#edquota p woon zwen
#復制賬戶woon的quota給賬戶zwen和hchen;
8)設置寬限時間為3天
[root@woon home]# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
? Filesystem???????????? Block grace period???? Inode grace period
? /dev/sdb1? ?????????????????????????3days?????????????? ????????7days
9)設置組配額
[root@woon home]# edquota –g woon
^^^^^^^^^^^^^^^^^^^^^^^^
10) 查看quota設置結果記錄
[root@woon ~]# repquota -av
*** Report for user quotas on device /dev/sdb1
Block grace time: 3days; Inode grace time: 7days
???????????????????????Block limits??????????????? Filelimits
User???????????used??? soft??? hard?grace??? used? soft?hard? grace
----------------------------------------------------------------------
root????? --?? 50500??????0?????? 0????????? 10975???? 0????0??????
woon????? --??? 8552??51200?? 61440?????? ?????218????0???? 0??????
woonli??? --????? 36??????0?????? 0????????????? 9???? 0????0??????
hchen???? --????? 32??51200?? 61440????????????? 8???? 0????0??????
zwen????? --????? 32??51200?? 61440????????????? 8???? 0????0??????
#1000???? --?? ?2224??????0?????? 0???????????? 59???? 0????0??????
?
Statistics:
Total blocks: 8
Data blocks: 1
Entries: 6
Used average: 6.000000
?
四、quota驗證
[root@woon woon]# su – woon
[woon@woon ~]$ dd if=/dev/zero of=/home/woon/fileddbs=1M count=100
sdb1: warning, user block quota exceeded.
sdb1: write failed, user block limit reached.
dd: 正在寫入"/home/woon/filedd": 超出磁盤限額
記錄了59+0 的讀入
記錄了58+0 的寫出
61665280字節(62 MB)已復制,0.0753227 秒,819 MB/秒
超出磁盤配額
[woon@woon ~]$ du -h filedd
59M???? filedd
[woon@woon ~]$ du -h |tail -1
60M
轉載于:https://blog.51cto.com/woonli/1613494
總結
以上是生活随笔為你收集整理的Linux磁盘配额应用的全部內容,希望文章能夠幫你解決所遇到的問題。