前言 編輯 fstab 檔案 產生設定檔 編輯磁碟限制 取消與啟動 檢查磁碟限制 磁碟配額Quota 前言 編輯 fstab 檔案 產生設定檔 編輯磁碟限制 取消與啟動 檢查磁碟限制
什麼是 Quota 妥善的分配系統資源 限制某一群組所能使用的最大磁碟配額 限制某一使用者的最大磁碟配額 僅能針對整個 filesystem
設定開機啟動quota vi /etc/fstab /dev/sdb1 /home ext3 defaults,usrquota,grpquota 1 2
建立 quota 記錄檔 自動產生:quotacheck –avug 可自行touch aquota.group, aquota.user
啟動quota:quotaon -u :針對使用者啟動 -g :針對群組啟動 -v :顯示啟動過程 -a :根據 /etc/mtab 內的 filesystem 設定 啟動有關的 quota
編輯使用者quota Edquota -u:編輯使用者 -g:編輯群組 -t:修改寬限時間 -p:複製範例
Quota報表:repquota -a :收詢/etc/mtab檔,並製作報表 -v:顯示filesystem詳細資料 -u:顯示使用者 -g:顯示群組 -s:顯示單位
1. 編輯 fstab 檔案 請用文書編輯程式開啟 /etc/fstab 檔案, 其內容類似下面這樣:
編輯 fstab 檔案 編輯 ext4 檔案系統所在分割區 (或其他要限制磁碟空間的磁碟) 的設 定, 加上 usrquota (user quota)、grpquota (group quota) 兩項, 表示要建 立使用者與群組的磁碟空間限制: 倘若只要限制使用者或群組的磁碟空間, 則僅需加上 usrquota 或 grpquota 其中一項即可, 存檔離開後, 重新開機或者是執行 mount -o remount / 再輸入 mount 確認 。
善用 Quota 磁碟空間限制 由於 Quota 的作用範圍是以分割區為單位, 所以在實作磁碟分割限制時, 應該要先計畫好 要限制的範圍及目標, 並依需求分割硬碟再為 該分割區設定 Quota。 舉例來說, 提供郵件服務的主機, 因為使用者 信件檔會放置於 /var/spool/mail 目錄, 所以若 要特別限制使用者的郵件空間, 便應該將 /var 或 /var/spool/mail 掛載於獨立的硬碟分割區, 然後對該分割區設定 Quota 磁碟限制。
善用 Quota 磁碟空間限制 如果您只有 "/" 一個分割區, 那麼針對 "/" 分割區設定磁碟限制時, 使用者所有 使用的空間都包含在此限制內。例如 tony 帳號的磁碟限制為 20 MB, 那麼 tony 個人網頁檔案、家目錄個人檔案、 郵件檔案...等都會被包含在 20 MB 的限 制中。所以如果想要獨立限制郵件空間, 便應該將郵件檔放置的目錄單獨掛載於 其他分割區。
善用 Quota 磁碟空間限制 同理, 提供網頁服務的 W W W 主機, 若要單 獨限制個人網頁空間, 也應該將放置個人網頁 的目錄掛載於獨立的硬碟分割區。 此外, 一般情況下無法針對 root 帳號做空間 限制, 但若是遇到有人使用郵件炸彈寄大量信 件至 root 帳號, 就很容易因為用完硬碟空間 而癱瘓系統。為了避免此狀況發生, 您可以設 定將 root 信件轉給系統上一般使用者的帳號, 然後設定該帳號的 Quota, 限制其磁碟空間即 可。
2.產生設定檔 修改好 fstab 檔後, 請您先在系統根目錄 / 下執行 quotacheck -ugavmc
2.產生設定檔 常用於 quotacheck 指令的參數說明: - a:掃描 fstab 檔案中, 所有已加入 quota 設定 的分割區。 - d:詳細顯示指令執行過程, 便於除錯或了解程 式執行的情形。 -g:掃描磁碟空間時, 計算每個群組識別碼 (GID) 所佔用的目錄和檔案數目。 -u:掃描磁碟空間時, 計算每個使用者識別碼 (UID) 所佔用的目錄和檔案數目。 -v:標示指令執行過程。
2.產生設定檔 -m:強制執行指令。 -c:不讀取已存在的 aquota 資料庫, 重新掃描硬 碟並儲存。 然後請重新開機。此時系統仍未設定磁碟 空間, 我們執行 quota 指令檢查自己的磁碟 使用空間, 會出現下列訊息表示沒有限制:
3. 使用 edquota 編輯磁碟限制 edquota 指令可分別編輯使用者與群組 的磁碟空間限制, 以下我們分別討論。
編輯使用者的磁碟限制 請以 root 帳號執行 edquota -u wei 指令, 系統 會啟動 vim, 設定 wei 帳號的空間限制。
編輯使用者的磁碟限制 預設 soft (soft limit) = 0, hard (hard limit) = 0, 表示沒有上限, 可以用到整個磁碟 爆滿。 因為每個檔案都需要使用一個 inode, 所 以 inode 數就是指使用者目前所擁有的 檔案數量。而可用的 inode 數量也沒有 上限, 最多可將所有的 inode 用光。
soft l imit 與 hard limit 如果我們打算分配給每位使用者 10MB 容量 以及 500 個檔案的儲存空間, 那麼這些使用 者就只能用到 10MB 或 500 個檔案佔滿為 止, 超過限制時會被系統阻止, 無法繼續儲存。 若我們將 soft limit 設成 10MB, 而 hard limit 訂在 15MB, 表示使用者存放超過 10MB 空 間時, 仍然可以繼續儲存, 最多到 15MB 為止。 不過系統會顯示警告訊息提醒使用者:
soft l imit 與 hard limit 檔案數量限制也是相同的道理, 把 soft limit 設成 500 個, 而 hard limit 訂在 550 個, 表示使用者存放超過 500 個檔案時, 仍然可以繼續儲存到 550 個為止。
soft l imit 與 hard limit 若超過 soft limit, 使用者卻置之不理, 且 無視於系統的警告, 則當時間超過寬限 期時, 使用者即使尚未到達 hard limit, 也 會無法儲存任何檔案:
測試使用者的磁碟限制 使用 dd 可以用來建立空的檔案,用wei的帳號,建立一個檔案 10MB 的檔案在 /home/wei $dd if=/dev/zero of=/home/wei/10M bs=1M count=10 指令意義如下: if 是 input file,輸入檔案。 /dev/zero 是會一直輸出 0 的裝置。 of 是 output file,將一堆零寫入到後面接的檔案中。 bs 是每個 block 大小,類似檔案系統的 block 。 count 則是總共幾個 bs 。
測試使用者的磁碟限制 目前使用狀況 $ quota 建立10MB檔案 Disk quotas for user wei (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/vg_wei-lv_root 32 8192 10240 9 10 20 建立10MB檔案 $ dd if=/dev/zero of=/home/wei/10M bs=1M count=10 23
測試使用者的磁碟限制 $ quota 可看到wei 使用的 block 數變大,再新增3MB檔案看看會如何? Disk quotas for user wei (uid 500): Filesystem blocks quota limit grace files quota limit grace /dev/mapper/vg_wei-lv_root 10240* 8192 10240 7days 10 10 20 可看到wei 使用的 block 數變大,再新增3MB檔案看看會如何? $ dd if=/dev/zero of=/home/wei/3M bs=1M count=3 dd: 寫入 ‘/home/wei/3M’: 硬碟 quota 滿了 1+0 records in 0+0 records out 0 bytes (0 B) copied, 0.00616812 s, 0.0 kB/s 24
編輯使用者的磁碟限制 修改完畢請記得存檔離開。如此就設定完 成一個使用者的的磁碟限制了。您可用同 樣的方法設定其他的使用者。如果不想一 個一個設定, 也可以用一個已經設定好的使 用者磁碟限制為範本, 使用 edquota -p 指令, 一次設好全部的使用者:
編輯使用者的磁碟限制 若指定要套用給某個特定的帳號, 則不 需切換到 /home 目錄, 可直接如下操作:
編輯群組的磁碟限制 由於每個使用者都有所屬的群組, 因此 我們也可以為群組設定磁碟限制。但設 定群組的限制時, 最好先計算一下整個 群組會有多少個使用者, 及每個使用者 的磁碟空間各為多少, 以免整個群組的 磁碟空間反而比每個使用者加起來的空 間還小。
編輯群組的磁碟限制 例如一個使用者的 soft limit 為 10000, 而一個群組中有 10 人, 那麼此群組的 soft limit 就至少該有 10000*10。但 hard limit 不見得需要是所有使用者的 hard limit 總合, 小一點也沒關係, 總不會 那麼巧, 每個使用者都用滿 hard limit 吧。 編輯群組的操作方式和編輯使用者類似, 執行 edquota -g group1 指令, 表示要編 輯 group1 群組的磁碟空間限制:
編輯群組的磁碟限制 當設定完一個群組之後, 則可執行 edquota -gp group1 group2 指令, 將 group1 的設定套用在 group2 上。
設定超過 soft limit 的寬限期 雖然當使用者超過 soft limit 時, 系統會 發出警告, 但總要有個期限的規定, 因此 我們必須設定寬限期 (grace time), 要求 使用者在指定的期限內清掉多出來的檔 案。系統預設是寬限 7 天, 我們可用 edquota -t 指令自行調整:
設定超過 soft limit 的寬限期 或加入參數 “g” 調整群組的寬限期: 當執行後, 會顯示下面的內容:
設定超過 soft limit 的寬限期 修改寬限期並不追朔既往, 例如使用者 wei 的寬限期原本還剩 6 天, 就算我們 把寬限期縮短成 1 天, wei 這次的期限 依舊是 6 天, 新設定要在 wei 下次再超 過限制時才會發生作用。
4. 取消與啟動磁碟限制 要取消磁碟空間的限制, 執行 quotaoff -avug 指令即可: 若要再啟動磁碟空間限制, 必須執行 quotaon -avug 指令:
5. 檢查是否超過磁碟限制 一般的使用者執行 quota -v 指令, 可知 有無超過限制:
5. 檢查是否超過磁碟限制 系統管理者若需檢查所有群組及使用者 的磁碟限制, 可使用 repquota -a 或 repquota -au 指令 (report quota) 檢查所 有使用者、repquota -ag 指令檢查所有群 組:
5. 檢查是否超過磁碟限制