免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 685 | 回复: 0
打印 上一主题 下一主题

linux 磁盘配额(转自vbird) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-28 17:44 |只看该作者 |倒序浏览

                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
根據這些資訊,您就可以知道目前的限制情況囉! ^_^
[color="#ff0000"]结果如下:
[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
      [color="#ff0000"]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
      [color="#ff0000"]cuizb     --      40  512000  512000              5     0     0
      wanggh    --      40  512000  512000              5     0     0
      
 
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/51541/showart_713943.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP