linux之磁碟配額(quota)

来源:https://www.cnblogs.com/cn-leoblog/archive/2022/05/25/16311448.html
-Advertisement-
Play Games

1.什麼是quota 簡單的說就是限制用戶對磁碟空間的使用量。 因為Linux是多用戶多任務的操作系統,許多人共用磁碟空間,為了合理的分配磁碟空間,於是就有了quota的出現。 2.quota的用途 顯示磁碟使用情況和配額 3.quota的一般作用對象 (1)針對WWW server (2)針對ma ...


1.什麼是quota

  簡單的說就是限制用戶對磁碟空間的使用量。

  因為Linux是多用戶多任務的操作系統,許多人共用磁碟空間,為了合理的分配磁碟空間,於是就有了quota的出現。

2.quota的用途
顯示磁碟使用情況和配額
3.quota的一般作用對象
(1)針對WWW server
(2)針對mail server
(3)針對file server
4.quota的限制
(1)僅能針對整個文件系統
(2)需要kernel的支持
(3)只對一般用戶有效
5.quota的使用

  測試環境

    RHEL6.6(預設kernel已經支持quota功能)

    /dev/sdb1  供測試的文件系統

    用戶組   myquota

    用戶   quota1,quota2

  具體操作如下

    (1)重新掛/dev/sdb1文件系統,並添加usrquota,grpquota參數

    [root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1

    重新掛載後,/dev/sdb1這個分區就支持quota功能了

    [root@localhost ~]# mount | grep /dev/sdb1
    /dev/sdb1 on /mnt/test type ext4 (rw,usrquota,grpquota)

    (2)添加用戶組和用戶

    [root@localhost ~]# groupadd myquota
    [root@localhost ~]# useradd -g myquota quota1
    [root@localhost ~]# useradd -g myquota quota2
    

    (3)生成quota配置文件

    [root@localhost ~]# cd /mnt/test/

    [root@localhost test]# quotacheck -ug .

    [root@localhost test]# ls
    aquota.group aquota.user lost+found 生成quota配置文件
    (4)啟動quota功能

    [root@localhost test]# quotaon /dev/sdb1
    若要關閉 使用quotaoff命令

    (5)修改quota配置文件

   
    配置文件內容如下
     Filesystem blocks soft hard inodes soft hard
    /dev/sdb1 0 0 0 0 0 0

    需要修改的是soft/hard的值,單位是KB,soft為警告值,hard為最大值,當磁碟使用量在soft-hard之間,就會發出警告(預設倒計時7天),若超過警告時間,磁碟使用量依然在soft-hard 之間,則會禁止使用磁碟空間。

    若修改blocks的soft/hard表示規定用戶可以使用的磁碟空間大小(一般都是規定磁碟使用量)

    若修改的是inodes的 soft/hard值,表示規定用戶可以創建的文件個數. 

 

    [root@localhost test]# edquota -u quota1    -->修改針對quota1用戶的配置        

    Disk quotas for user quota1 (uid 500):
      Filesystem                   blocks          soft            hard         inodes      soft     hard
      /dev/sdb1                         0          100000       200000           0            0          0

    [root@localhost test]# edquota -u quota2    -->修改針對quota2用戶的配置

    Disk quotas for user quota2 (uid 501):
      Filesystem                   blocks       soft               hard        inodes     soft     hard
      /dev/sdb1                     0             100000        200000          0             0        0
  

    [root@localhost test]# edquota -g myquota  -->修改針對myquota組的配置

    Disk quotas for group myquota (gid 500):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sdb1                    251200     100000     300000          3        0        0    

   這樣配置表示quota1,quota2用戶最多使用200M的磁碟空間,超過100M就發出警告併進入倒計時,而myquota組最多使用300M的磁碟空間。也就是說,雖然quota1,quota2都有200M的最大磁碟空間能使用許可權,但他們都屬於myquota組,他們的總量不得超過300M.

    修改許可權

    [root@localhost test]# chmod 777 .
    [root@localhost test]# ll -d
    drwxrwxrwx. 3 root root 4096 8月 23 09:36 .
    切換quota1用戶,進行測試

    [root@localhost test]# su quota1
    [quota1@localhost test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
    sdb1: warning, user block quota exceeded. -->警告
    記錄了150+0 的讀入
    記錄了150+0 的寫出
    157286400位元組(157 MB)已複製,1.02545 秒,153 MB/秒

    再寫入一個大文件

    [quota1@localhost test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
    sdb1: write failed, user block limit reached.
    dd: 正在寫入"bigfile2": 超出磁碟限額   -->超過200M的部分就無法寫入了
    記錄了46+0 的讀入
    記錄了45+0 的寫出
    47513600位元組(48 MB)已複製,0.381467 秒,125 MB/秒

    切換quota2用戶

    [root@localhost test]# su quota2
    [quota2@localhost test]$ ls
    aquota.group  aquota.user  bigfile1  bigfile2  lost+found
    [quota2@localhost test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50

    記錄了50+0 的讀入
    記錄了50+0 的寫出
    52428800位元組(52 MB)已複製,0.410838 秒,128 MB/秒

    修改警告時間

    [root@localhost test]$ 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                     7days                          7days

    

    查看quota1的quota信息

    [quota1@localhost test]$ quota -u quota1
    Disk quotas for user quota1 (uid 500):
       Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1  200000* 100000  200000   6days       2       0       0          -->已經進入警告的倒計時了

    

    查詢quota2的quota信息

    [root@localhost test]# quota -u quota2
    Disk quotas for user quota2 (uid 501):
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
        /dev/sdb1   51200  100000  200000               1       0       0     

    查詢myquota組的quota信息

    [root@localhost test]# quota -g myquota
    Disk quotas for group myquota (gid 500):
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1  251200* 100000  300000   6days       3       0       0 

    總結:

       quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem

         -a   檢查所有/etc/mtab中掛在的文件系統

         -u  只檢查用戶的quota

         -g  只檢查用戶組的quota

      quota

        不使用任何參數,查詢當前用戶的quota信息

        -u username  查詢某用戶的quota信息

        -g groupname  查詢某用戶組的quota信息

      edquota

        -u username   編輯某用戶的quota配置

        -g groupname  編輯某用戶組的quota配置

        -t        編輯警告時間的配置

    

      還有一個綜合查詢命令是

      repquota

         -a 報告所有支持quota的文件系統

         -u 報告針對user的quota信息

         -g 包裹針對group的quota信息

      一般三個參數一起使用

            [root@localhost test]# repquota -aug
       *** Report for user quotas on device /dev/sdb1
       Block grace time: 7days; Inode grace time: 7days
                         Block limits                File limits
       User            used    soft    hard  grace    used  soft  hard  grace
       ----------------------------------------------------------------------
       root      --      20       0       0              2     0     0       
       quota1    +-  200000  100000  200000  6days       2     0     0       
       quota2    --   51200       0       0              1     0     0       


       *** Report for group quotas on device /dev/sdb1
       Block grace time: 7days; Inode grace time: 7days
                         Block limits                File limits
       Group           used    soft    hard  grace    used  soft  hard  grace
       ----------------------------------------------------------------------
       root      --      20       0       0              2     0     0       
       myquota   +-  251200  100000  300000  7days       3     0     0   


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Java 9中又新增了一些API來幫助便捷的創建不可變集合,以減少代碼複雜度。 本期配套視頻:Java 9 新特性:快速定義不可變集合 常規寫法 以往我們創建一些不可變集合的時候,通常是這樣寫的: // 不可變的Set Set<String> set = new HashSet<>(); set. ...
  • 反向代理(2022/03/31) 簡單記錄 Nginx 反向代理相關的一些配置文件,描述不足之處請自行查閱相關資料。 1. HTTP 配置 upstream web { server domain.com:80; } server { # 監聽 tcp4 listen 80; # 監聽 tcp6 l ...
  • 爬蟲代理 IP 池及隧道代理 日常開發中,偶爾會遇到爬取網頁數據的需求,為了隱藏本機真實 IP,常常會用到代理 IP 池,本文將基於 openresty 與代理 IP 池搭建更為易用的隧道代理。 1. 代理 IP 池 1.1 簡介 代理 IP 池即在資料庫中維護一個可用的 IP 代理隊列,一般實現思 ...
  • 來源:www.cnblogs.com/keyyang/p/4128424.html 我們可能經常會用到 Thread.Sleep 函數來使線程掛起一段時間。那麼你有沒有正確的理解這個函數的用法呢?思考下麵這兩個問題: 假設現在是 2008-4-7 12:00:00.000,如果我調用一下 Threa ...
  • 1.Docker基本介紹? Docker就是虛擬化的一種輕量級替代技術,基於Go語言的開源應用容器引擎。Docker的容器技術不依賴任何語言、框架或系統,可以將應用程式變成一種標準化的、可移植的、自管理的組件,並脫離伺服器硬體在任何主流系統中開發、調試和運行。 光看這個介紹還不足以知道Docker是 ...
  • 在基於SqlSugar的開發框架中,我們設計了一些系統服務層的基類,在基類中會有很多涉及到相關的數據處理操作的,如果需要跟蹤具體是那個用戶進行操作的,那麼就需要獲得當前用戶的身份信息,包括在Web API的控制器中也是一樣,需要獲得對應的用戶身份信息,才能進行相關的身份鑒別和處理操作。本篇隨筆介紹基... ...
  • 在前面隨筆,我們介紹過這個基於SqlSugar的開發框架,我們區分Interface、Modal、Service三個目錄來放置不同的內容,其中Modal是SqlSugar的映射實體,Interface是定義訪問介面,Service是提供具體的數據操作實現。在Service層中,往往除了本身的一些增刪... ...
  • 許可權術語 Subject:用戶,用戶組 Action:對Object的操作,如增刪改查等 Object:許可權作用的對象,也可以理解為資源 Effect:規則的作用,如允許,拒絕 Condition:生效條件 Permission:允許(拒絕)用戶(用戶組)在條件允許下對對象(資源)的動作 Role: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...