1 / 50

第 12 章

第 12 章. 使用者磁碟 空間管理. 前言. 由於 Linux 是多使用者的作業環境 , 假若任由每個使用者存放檔案而沒有限制 , 磁碟空間將迅速消耗 , 很快地便會不敷使用。 我們可以藉由限制每個使用者可以使用的磁碟空間 , 在使用者即將超過限制時提出自動警告 , 甚至不允許其在達到限額時再儲存檔案 , 來避免此一狀況發生。. 本章提要. 12-1 Quota 簡介 12-2 設定磁碟配額 12-3 編輯磁碟配額 12-4 取消與啟動磁碟限制 12-5 檢查使用者是否超過磁碟限制

alagan
Download Presentation

第 12 章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 12 章 使用者磁碟 空間管理

  2. 前言 • 由於 Linux 是多使用者的作業環境, 假若任由每個使用者存放檔案而沒有限制, 磁碟空間將迅速消耗, 很快地便會不敷使用。 • 我們可以藉由限制每個使用者可以使用的磁碟空間, 在使用者即將超過限制時提出自動警告, 甚至不允許其在達到限額時再儲存檔案, 來避免此一狀況發生。

  3. 本章提要 • 12-1 Quota 簡介 • 12-2 設定磁碟配額 • 12-3 編輯磁碟配額 • 12-4 取消與啟動磁碟限制 • 12-5 檢查使用者是否超過磁碟限制 • 12-6 應用實例 - 建立使用者的郵件空間限制

  4. 12-1 Quota 簡介 • Quota 即為限額、配額的意思, 在 Linux 下 Quota 的功能, 就是限制使用者可運用的磁碟空間。例如常見的個人網頁的空間限制、個人郵件的容量限制, 都是透過 Quota 達成。 • 只要系統中有安裝 quota 套件, 則預設在開機時便會啟用 Quota, 但尚未設定磁碟空間限制。因而此時執行 quota指令檢查自己的磁碟使用空間, 會出現下列訊息表示沒有限制:

  5. Quota 簡介 • 這表示使用者 tony 可以隨自己高興任意堆放檔案, 直到塞滿整個磁碟為止,此舉將造成所有其他使用者都無法儲存資料。

  6. Quota 簡介 • 為了避免這種毫無節制、濫用空間的災難發生, 以下我們便要來討論如何替使用者設定磁碟空間的限制。 • 最後, 在開始設定磁碟配額之前, 還有一點要請您注意:磁碟配額是針對使用者作限制, 並且作用範圍是以分割區為單位。

  7. Quota 簡介 • 也就是說, 若我們在 /dev/hda1分割區為使用者 tony 設定了磁碟配額, 則 tony 在 /dev/hda1 中各目錄下可儲存的檔案空間總合, 將不能超過此配額。 • 因此, 如果您要分別限制系統中使用者的郵件空間或網頁空間, 要記得將儲存使用者郵件的目錄, 及儲存使用者網頁的目錄分別置於獨立的分割區中, 分別掛載。

  8. 12-2 設定磁碟配額 • 以下我們將逐步說明如何啟用 Quota, 由於大多數使用者在初學 Linux 時,大多只建立一個分割區掛載系統根目錄, 故筆者以此狀況為例說明, 將為根目錄所在的分割區 (也是唯一的分割區) 設定磁碟配額。 • 但前面說過, Quota 的作用範圍是以分割區為單位, 因此如下設定後, 使用者在系統中可使用的空間將不能超過所設定的限制。

  9. 設定磁碟配額 • 編輯 fstab 檔案 • 產生設定檔 • aquota.user 及 aquota.group 檔的位置

  10. 1.編輯 fstab 檔案 • 請用文書編輯程式開啟 /etc/fstab 檔案, 其內容類似下面這樣:

  11. 編輯 fstab 檔案 • 編輯根目錄所在分割區 (或其他要限制磁碟空間的磁碟) 的設定, 加上 usrquota (user quota)、grpquota (group quota) 兩項, 表示要建立使用者與群組的磁碟空間限制:

  12. 編輯 fstab 檔案 • 倘若只要限制使用者或群組的磁碟空間, 則僅需加上 usrquota 或 grpquota 其中一項即可, 存檔離開後, 請重新開機。 • /etc/fstab 是開機時掛載分割區的依據, 若是其中的項目輸入錯誤, 會造成啟動時將分割區掛載成唯讀, 因此在修改時請特別小心。

  13. 2.產生設定檔 • 接著執行 quotacheck指令檢查目前磁碟的使用狀況, 並在系統根目錄下建立 aquota.user及 aquota.group設定檔:

  14. 產生設定檔 • 此設定需要幾分鐘時間, 請您耐心等候。第一次執行時, 由於系統中尚未建立 aquota 資料庫, 有時會出現類似 "quotacheck: Cannot stat old user quota file: 沒有此一檔案或目錄" 與 "quotacheck: Old group file not found. Usage will not be substracted." 的訊息, 但並不會影響執行的結果, 請不用擔心。

  15. 產生設定檔 • 以下是用於 quotacheck指令的參數說明: • -a 參數:掃描 fstab 檔案中, 有加入 quota 設定的分割區。 • -d 參數:詳細顯示指令執行過程, 便於除錯或了解程式執行的情形。 • -g 參數:掃描磁碟空間時, 計算每個群組識別碼 (GID) 所佔用的目錄和檔案數目。

  16. 產生設定檔 • -u 參數:掃描磁碟空間時, 計算每個使用者識別碼 (UID) 所佔用的目錄和檔案數目。 • -v 參數:標示指令執行過程。 • -m 參數:強制執行指令。 • -c 參數:不讀取已存在的 aquota 資料庫, 重新掃描硬碟並儲存。若曾經設定過 Quota, 現在想重新設定時, 可使用此參數忽略原本的資料庫, 重新建立。

  17. 產生設定檔 • 然後請重新開機, 接著就要來設定使用者的磁碟空間了。 • 如果要對其他的分割區 (掛載點不是根目錄的分割區) 做 quota 的設定, 也可以用同樣的方式產生設定檔, 詳細的說明請執行 manquotacheck指令。

  18. aquota.user 及 aquota.group 檔的位置 • aquota.user 及 aquota.group 設定檔會產生在設定啟用磁碟配額之分割區的掛載目錄下,由於我們設定的分割區被掛載為系統根目錄, 故此 2 個檔案會建立在根目錄 / 下。 • 若有一個分割區掛載為 /home 目錄, 並要在此分割區啟用磁碟配額, 則執行 quotacheck指令後,將會在 /home 目錄下建立 aquota.user 及 aquota.group 設定檔。

  19. 12-3 編輯磁碟配額 • 前面說過, 只要安裝了 guota 套件, 系統預設便已啟用磁碟配額, 但因為我們還沒有設定各使用者可用的空間限制, 所以使用者還是可以隨意的儲存檔案 (預設沒有限制)。 • 因此, 接著要使用 edquota指令可分別編輯使用者與群組的磁碟空間限制, 以下我們分別討論。

  20. 編輯磁碟配額 • 編輯使用者的磁碟限制 • soft limit 與 hard limit • 編輯群組的磁碟限制 • 設定超過 soft limit 的寬限期

  21. 編輯使用者的磁碟限制 • 執行 edquotatony或 edquota -u tony指令可編輯使用者 tony 可使用的磁碟空間配額。執行 edquota指令時, 系統會啟動 vim 編輯程式讓我們進行設定。請如下編輯:

  22. 編輯使用者的磁碟限制 • 預設 soft (soft limit) = 0, hard (hard limit) = 0, 表示沒有上限 (等一下會介紹何謂 soft 與 hard), 可以用到整個磁碟爆滿。 • 因為每個檔案都需要使用一個 inode, 所以 inode 數就是指使用者目前所擁有的檔案數量。而可用的 inode 數量也沒有上限, 最多可將所有的 inode 用光。

  23. soft limit 與 hard limit • 如果我們打算分配給每位使用者 10MB 容量以及 500 個檔案的儲存空間, 那麼這些使用者就只能用到 10MB 或 500 個檔案佔滿為止, 超過限制時會被系統阻止, 無法繼續儲存。 • 若我們將 soft limit 設成 10MB, 而 hard limit 訂在 15MB, 表示使用者存放超過 10MB 空間時, 仍然可以繼續儲存, 最多到 15MB 為止。

  24. soft limit 與 hard limit • 不過系統會顯示警告訊息提醒使用者: • 檔案數量限制也是相同的道理, 把 soft limit 設成 500 個, 而 hard limit 訂在 550 個, 表示使用者存放超過 500 個檔案時, 仍然可以繼續儲存到 550 個為止。

  25. soft limit 與 hard limit • 若超過 soft limit, 使用者卻置之不理, 且無視於系統的警告, 則當時間超過寬限期時, 使用者即使尚未到達 hard limit, 也會無法儲存任何檔案:

  26. 編輯使用者的磁碟限制 • 瞭解 soft limit 與 hard limit 的關係之後, 我們就可以為使用者設定磁碟的容量與 inode 的數量限制了:

  27. 編輯使用者的磁碟限制 • 修改完畢請記得存檔離開。如此就設定完成一個使用者的的磁碟限制了。 • 您可用同樣的方法設定其他的使用者。如果不想一個一個設定, 也可以用一個已經設定好的使用者磁碟限制為範本, 使用 edquota -p指令, 一次設好全部的使用者:

  28. 編輯使用者的磁碟限制 • 假如您的使用者家目錄不是在 /home, 例如 /home/department/, 則需先切換到該目錄, 否則會告訴您找不到使用者。另外如果 /home 目錄下有不屬於使用者的目錄, 例如您可能會使用 /home/database/ 目錄放資料庫檔案, 此時就不能用這個方法套用所有帳號, 因為 database 不是使用者名稱, 會導致 edquota指令出現錯誤。

  29. 編輯使用者的磁碟限制 • 若指定要套用給某個特定的帳號, 則不需切換到 /home 目錄, 可直接如下操作:

  30. 編輯群組的磁碟限制 • 由於每個使用者都有所屬的群組, 因此我們也可以為群組設定磁碟限制。但設定群組的限制時, 最好先計算一下整個群組會有多少個使用者, 及每個使用者的磁碟空間各為多少, 以免整個群組的磁碟空間反而比使用者加起來的空間還小。 • 例如一個使用者的 soft limit 為 10000, 而一個群組中有 10 人, 那麼此群組的 soft limit 就至少該有 10000*10。

  31. 編輯群組的磁碟限制 • 但 hard limit 不見得需要是所有使用者的 hard limit 總合, 小一點也沒關係, 總不會那麼巧, 每個使用者都用滿 hardlimit 吧。 • 編輯群組的操作方式和編輯使用者類似, 執行 edquota -g group1指令, 表示要編輯 group1 群組的磁碟空間限制:

  32. 編輯群組的磁碟限制 • 當設定完一個群組之後, 則可執行 edquota -gp group1 group2指令, 將 group1 的設定套用在 group2 上。

  33. 設定超過 soft limit 的寬限期 • 雖然當使用者超過 soft limit 時, 系統會發出警告, 但總要有個期限的規定,因此我們必須設定寬限期 (grace time), 要求使用者在指定的期限內清掉多出來的檔案。 • 系統預設是寬限 7 天, 我們可用 edquota -t指令自行調整:

  34. 設定超過 soft limit 的寬限期 • 執行後, 會顯示下面的內容:

  35. 設定超過 soft limit 的寬限期 • 修改寬限期並不追朔既往, 例如使用者 lambert 的寬限期原本還剩 6 天, 就算我們把寬限期縮短成 1 天, lambert 這次的期限依舊是 6 天, 新設定要在 lambert 下次再超過限制時才會發生作用。

  36. 12-4 取消與啟動磁碟限制 • 前面說過, 只要有安裝 quota 套件, 系統預設便會啟用磁碟配額。那麼如要取消設定好的磁碟空間限制, 該怎麼辦呢?請執行 quotaoff -avug指令即可:

  37. 取消與啟動磁碟限制 • 若要再啟動磁碟空間限制, 則請重新開機或執行 quotaon -avug指令: • quotaon及 quotaoff指令的參數與 quotacheck指令類似, 詳細用法可使用 man指令查詢線上說明。

  38. 12-5 檢查使用者是否 超過磁碟限制 • 一般的使用者執行 quota -v指令, 可得知自己有無超過限制:

  39. 檢查使用者是否超過磁碟限制 • 若沒超過 soft limit, 則 grace 那一欄是空白的。 • 系統管理者若需檢查所有群組及使用者的磁碟限制, 可使用 repquota –au 指令 (report quota) 檢查所有使用者、repquota -ag指令檢查所有群組, 或乾脆使用 repquota-a指令檢查全部的資料:

  40. 檢查使用者是否超過磁碟限制

  41. 檢查使用者是否超過磁碟限制 • 管理者用這個指令就可將整個系統佔用的磁碟空間全部顯示出來, 任何群組及使用者都無所遁形! • 看完本章之後, 相信您對於如何設定磁碟限制已相當瞭解。這些都算是系統管理的基本工夫, 一定要相當熟悉才行。 • 設定好磁碟配額後, 身為系統管理者還應該要可以隨時查詢、了解使用者的使用狀況。

  42. 12-6 應用實例 – 建立使用者的郵件空間限制 • 郵件空間與網頁空間限制是最常見、也是最常用到的磁碟空間限制, 以下筆者便將說明如何為您的主機設定使用者的郵件空間配額 (若想設定網頁空間限制, 也可依此法設定)。 • 我們前面的內容說過, Quota 的作用範圍是以分割區為單位, 因此我們應該先確定將使用者郵件儲存在獨立的分割區上。

  43. 應用實例 – 建立使用者的郵件空間限制 • 故在規劃主機硬碟時, 您可以將/var 目錄掛載在獨立的分割區上, 再對該分割區設定磁碟配額即可。若在安裝時沒有另外掛載 /var 目錄又不想重新安裝系統, 則可以另外建立一個分割區, 依下列方式設定。 • 例如筆者將 /dev/hda5 分割區掛載為 /mail 目錄, 並如下修改 /etc/fstab 檔,設定 /dev/hda5 分割區啟用磁碟配額:

  44. 應用實例 – 建立使用者的郵件空間限制

  45. 應用實例 – 建立使用者的郵件空間限制 • 設定好後請重新開機, 重新啟動後請執行 quotacheck -uavm指令在 /mail 目錄下產生 aquota.user 設定檔, 接著就可以使用 edquota指令編輯使用者在/dev/hda5 分割區的磁碟空間限制 (在此以設定使用者 tony 的磁碟配額為例):

  46. 應用實例 – 建立使用者的郵件空間限制

  47. 應用實例 – 建立使用者的郵件空間限制 • 完成上述步驟後, 磁碟配額的設定就完成了。 • 不過此時使用者的郵件都還在系統預設的 /var/spool/mail 目錄下, 因此, 請如下操作, 將原有的郵件移至設定好配額的 /mail 目錄中:

  48. 應用實例 – 建立使用者的郵件空間限制

  49. 應用實例 – 建立使用者的郵件空間限制 • 如果在安裝時便將 /var 目錄放置於獨立的分割區, 當然就不用執行上述備份及建立連結的動作了, 只要直接設定 /var 所在分割區的磁碟配額即可。 • 如此設定後, 往後使用者的郵件就會存到 /mail 目錄下, 受到該目錄下所設定的磁碟配額空間限制。

  50. 應用實例 – 建立使用者的郵件空間限制 • 用同樣的方法, 您也可以將使用者的網頁目錄放置在獨立的分割區中, 並設定磁碟配額, 就可以限制使用者可用的網頁空間了。 • 有些郵件伺服器會在使用者讀取郵件之後, 將郵件搬移到使用者家目錄下儲存。使用此類郵件伺服器的管理者, 除了要為郵件目錄設定磁碟配額外, 也要為使用者家目錄設定磁碟配額。

More Related