1.這兩個帳號應該是不存在我們的系統的,所以,趕緊將他設定上去吧![root@linux ~]# groupadd qgroup
[root@linux ~]# useradd -m -g qgroup quser1
[root@linux ~]# useradd -m -g qgroup quser2
[root@linux ~]# passwd quser1
[root@linux ~]# passwd quser2
2.建立好 filesystem 的 quota 支援:
由於 quota 較完整的支援是需要在 ext2/ext3 的 Linux 延伸格式檔案才可以啟動, 所以建議你就必須要將準備開啟 quota 的磁碟啟動參數,寫進入 quota 的磁碟設定才行 ( /etc/fstab )!以鳥哥的例子而言,我想要在 /disk2 底下進行 quota 的限制 quser1, quser2 這兩個人!這是因為我的 /disk2 是一個獨立的磁區,這可以使用 df 來查詢。 此外,必需要特別留意的是,最好不要以根目錄亦即是 / 進行 quota 啦!否則容易有些問題呢! 另外,不要針對 root 做 quota 喔!反正做了也沒用![root@linux ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 5952252 3193292 2451720 57% /
/dev/hdb1 28267608 77904 26730604 1% /disk2
/dev/hda5 9492644 227252 8775412 3% /disk1
嗯!我的 /disk2 是獨立的 partition ,並且他的裝置名為 /dev/hdb1 ,好了!那麼我就必須要啟動 /disk2 這個 /dev/hdb1 的 quota 檔案格式,好了!那麼由於檔案格式的設定是寫在 /etc/fstab 裡頭,所以我們以 vi 來編輯他吧!只要在 /etc/fstab 裡頭增加了 usrquota, grpquota 就可以啦! (註:請特別留意,這兩個項目請『務必』不要寫錯了!請在寫入 /etc/fstab 之前好好的再次檢查,因為寫錯之後,很有可能造成系統無法開機,雖然機率不高,但是有可能!)[root@linux ~]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/disk1 /disk1 ext3 defaults 1 2
LABEL=/disk2 /disk2 ext3 defaults,usrquota,grpquota 1 2
/dev/hda3 swap swap defaults 0 0
注意到我們所需要設定的那個 /disk2 的那一行,在第四欄位多了 usrquota,grpquota 注意,在『 defaults,usrquota,grpquota 』之間都沒有空格!
這樣就算加入了 quota 的磁碟格式了!不過,由於真正的 quota 在讀取的時候是讀取 /etc/mtab 這個檔案的,偏偏這一個檔案需要重新開機之後才能夠以 /etc/fstab 的新資料進行改寫!所以這個時候你可以選擇:
1. 重新開機 (reboot) ;
2. 重新 remount filesystem 來驅動設定值!
我是不太喜歡重新開機的人啦!所以我就這麼做:[root@linux ~]# umount /dev/hdb1
[root@linux ~]# mount -a
[root@linux ~]# grep '/disk2' /etc/mtab
/dev/hdb1 /disk2 ext3 rw,usrquota,grpquota 0 0
# 事實上,也可以利用 mount 的 remount 功能!
[root@linux ~]# mount -o remount /disk2
嘿嘿嘿嘿!這樣我們就已經成功的將 filesystem 的 quota 功能加入囉!另外,鳥哥這裡是以 ext3 這個磁碟格式來測試 quota 的呦!
3. 掃瞄磁碟的使用者使用狀況,並產生重要的 aquota.group 與 aquota.user:
接著下來就是要來掃瞄一下我們所需要的磁碟到底有沒有多餘的空間可以讓我們來設定 quota 呢?並且將掃瞄的結果輸出到這個磁碟的最頂層去(也就是 /disk2 底下)這個時候就需要 quotacheck 這個指令的幫忙了!使用 quotacheck 就可以輕易的將所需要的資料給他輸出了! 並且在 /disk2 底下會產生 aquota.group 與 aquota.user 這兩個檔案! [root@linux ~]# quotacheck -avug
quotacheck: Scanning /dev/hdb1 [/disk2] done
quotacheck: Checked 3 directories and 4 files
[root@linux ~]# ll /disk2
-rw------- 1 root root 6144 Sep 6 11:44 aquota.group
-rw------- 1 root root 6144 Sep 6 11:44 aquota.user
使用 quotacheck 就可以輕易的將所需要的資料給他輸出了!但是很奇怪的是,在某些 Linux 版本中,我不能夠以 aquota.user(group) 來啟動我的 quota ,這有可能是因為舊版 quota 的關係, 所以我就另外做了一個 link 檔案來欺騙 quota 囉:[root@linux ~]# cd /disk2
[root@linux ~]# ln -s aquota.user quota.user
[root@linux ~]# ln -s aquota.group quota.group
# 除非您的 Linux distributions 是比較舊的版本,否則不會有這個問題,
# 所以,這個動作你不必進行的!
4. 啟動 quota 的限額:
再來就是要啟動 quota 啦!啟動的方式也是很簡單的!就是使用 quotaon -av 即可:[root@linux ~]# quotaon -avug
/dev/hdb1 [/disk2]: group quotas turned on
/dev/hdb1 [/disk2]: user quotas turned on
注意:要看到上面有個 turned on 的出現,才是真的成功了!
5. 編輯使用者的可使用空間:
由於我們有兩個使用者要設定,先來設定 quser1 好了,使用 edquota 就對了:[root@linux ~]# edquota -u quser1
Disk quotas for user quser1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 45000 50000 0 0 0
再次強調的是,因為我的 /disk2 裡面並沒有任何資料存在,所以,在上面這個表格當中, blocks 與 inodes 才會都是 0 ,如果您是使用 /home 來進行 quota 設定的, 那麼 blocks/inodes 肯定不會是 0 ,這裡要特別留意的。好了,上面特殊字體的部分就是我們的設定了, 分別是 45000 及 50000 ,那個單位是 KBytes 啦,轉成 MBytes 應該是要除以 1024 才對, 不過,簡單算一下就好了,不要太介意喔!^_^。然後將 quser1 的設定直接複製給 quser2 吧![root@linux ~]# edquota -p quser1 quser2
接下來要來設定寬限時間,還是使用 edquota ![root@linux ~]# 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/hdb1 1days 7days
將時間改為 1 天(原本是 7days 改成 1days ),好了!查詢一下是否真的有設定進去呢?使用 quota -v 來查詢:[root@linux ~]# quota -vu quser1 quser2
Disk quotas for user quser1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
Disk quotas for user quser2 (uid 503):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
特別注意到,由於我們的使用者尚未超過 45 MB,所以 grace ( 寬限時間 ) 就不會出現啦!這樣很夠清楚了吧?!
6. 編輯群組可使用的空間:[root@linux ~]# edquota -g qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 80000 90000 0 0 0
[root@linux ~]# quota -vg qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 80000 90000 0 0 0
這樣就設定好了 group 的 quota 囉!同樣的,因為整個群組的總使用量還沒有到達 80000 KBytes, 當然那個 grace 就不會有任何資訊顯示了!但這個地方倒是有很多朋友來信問到一個小問題, 那就是『為什麼我兩個使用者 quser1, quser2 的設定值在 soft 與 hard 分別是 45/50MB ,但為何你的 group 總量 (hard) 設定僅有 90MB 呢?』,也就是說, 當我的某個使用者用了 50MB 的量,那另一個不就最多可以使用到 40MB 而已?原因何在啊?
這麼說好了,如果是小型的系統,由於使用者並不是很多,我們可以針對每個人來進行 quota 的設定值,所以,當然針對 users 來進行設定即可,不需要額外的設定 group 的 quota 設定啦。
但如果換個角度來思考,假設您所處的公司人員比較多且分工較細,因此, 我們可能無法真正瞭解每個使用者的需求,此時,針對每個使用者來設定可能就比較麻煩一點。那麼我們反過來說,可以針對每個部門 (group) 來進行 quota 的設定,因為部門的需求直接跟部門的負責人詢問就好了,比較容易,而該部門的使用者 quota 設定當然可以高一點, 因為,可能某些使用者有較為獨特的需求啊!反正只要符合 group 的限制即可, 該部門如果超過整個 group quota 限制值,呵呵!讓他們自己去處理即可! ^_^
7. 設定開機時啟動 quota:
這個部分就不需要擔心了,因為 FC4 與 Red Hat 系列的開機 script (/etc/rc.d/rc.sysinit) 已經將 quota 的偵測寫入在裡頭,因此,在預設的情況下, quota 是會主動的被啟動的。 不過,如果你想要手動的強制 quota 在開機啟動一遍,那麼可以使用 vi 去編輯 /etc/rc.d/rc.local ,在裡面加入一行 (直接加在最後一行即可):[root@linux ~]# vi /etc/rc.d/rc.local
/sbin/quotaon -avug
如果要關閉 quota 就是用 quotaoff 吧!沒錯!這樣就將 quota 設定完畢了!很簡單吧!! ( 如果是 SuSE Server 9 的話,可能就要去修改 /etc/init.d/boot.local 這個檔案囉! )
8. 利用 repquota 顯示更完整的 quota 結果報告:
事實上,除了 quota 可以用來觀察使用者與群組使用的 quota 限制值之外,其實, 我們還可以使用更詳細的 quota 報告指令,就是 repquota 這個指令呢!他的基本用法是這樣的:[root@linux ~]# repquota -a [-vug]
參數:
-a :直接到 /etc/mtab 搜尋具有 quota 標誌的 filesystem ,並報告 quota 的結果;
-v :輸出所有的 quota 結果,而非僅下達指令者自己的 quota 限值;
-u :顯示出使用者的 quota 限值 (這是預設值);
-g :顯示出個別群組的 quota 限值。
範例:
範例一:查閱系統內所有的具有 quota 的 filesystem 的限值狀態:
[root@linux ~]# repquota -av
*** Report for user quotas on device /dev/hdb1
Block grace time: 24:00; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 77888 0 0 4 0 0
quser1 -- 0 45000 50000 0 0 0
quser2 -- 0 45000 50000 0 0 0
Statistics: <==這是所謂的系統相關資訊,用 -v 才會顯示
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000
範例二:僅列出 user 與 group 的 quota 限值:
[root@linux ~]# repquota -aug
*** Report for user quotas on device /dev/hdb1
Block grace time: 24:00; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 77888 0 0 4 0 0
*** Report for group quotas on device /dev/hdb1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 77888 0 0 4 0 0
根據這些資訊,您就可以知道目前的限制情況囉! ^_^
结果如下:
[root@localhost rc.d]# /usr/sbin/repquota -a
*** Report for user quotas on device /dev/hda7
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 5647912 0 0 112070 0 0
daemon -- 20 0 0 3 0 0
lp -- 16 0 0 2 0 0
rpm -- 36820 0 0 123 0 0
avahi -- 20 0 0 3 0 0
smmsp -- 16 0 0 2 0 0
rpcuser -- 8 0 0 1 0 0
ntp -- 8 0 0 1 0 0
apache -- 24 0 0 3 0 0
dovecot -- 8 0 0 1 0 0
webalizer -- 32 0 0 4 0 0
squid -- 16 0 0 2 0 0
xfs -- 4 0 0 1 0 0
liuyx -- 325076 0 0 747 0 0
feng -- 40 512000 512000 5 0 0
lycy -- 40 0 0 5 0 0
mageng -- 40 512000 512000 5 0 0
liyc -- 40 512000 512000 5 0 0
chennd -- 48 512000 512000 6 0 0
lvyl -- 40 512000 512000 5 0 0
cuizb -- 40 512000 512000 5 0 0
wanggh -- 40 512000 512000 5 0 0
阅读(936) | 评论(0) | 转发(0) |