1. 程式人生 > >Linux限制使用者的磁碟空間和記憶體使用

Linux限制使用者的磁碟空間和記憶體使用

 

一、如何限制使用者的磁碟空間


1. 檢視系統中所有使用者的磁碟空間配額

sudo repquota /dev/vda1


2. 檢視某個使用者的磁碟空間配額

sudo edquota user_name

要想更改該使用者的磁碟空間配額,直接在彈出的檔案中修改blocks欄位後面的soft和hard欄位的值即可。比如下圖就將soft欄位的值設定為2097152(也就是2G),將hard欄位的值設定為3145728(也就是3G),這麼設定的意思就是,系統會允許你在一定時間內(時間的設定見下面的第4節)的磁碟空間超過2G,但是你要在截至時間到來之前將磁碟空間降到2G以下;但是無論如何,你的磁碟空間都不能超過3G。這也就是soft和hard的含義。需要注意的是,blocks和inodes欄位無需進行設定,這兩個欄位的值是系統自動給出的。


3. 先設定好某個模板使用者fanyiwei的磁碟空間配額,然後將其配額賦值給目標使用者target_user_name。只要設定過一次模板配額,那麼以後這個命令就是最常用的,很方便。

sudo edquota -p fanyiwei target_user_name


4. 設定預警期

之前第2節我們設定過使用者磁碟空間的軟上限(soft)和硬上限(hard)。硬上限是絕對不允許超過的上限,比如上面設定的3G;軟上限是短時間內允許你超過限制,但是有截止時間,也就是預警期。預警期的預設設定是7天,但是你可以用下面的命令修改

sudo edquota -t

執行之後會彈出下面的檔案,然後修改即可,比如下圖就將預警期設定成了3天。


二、如何限制使用者的記憶體使用量


1. 首先使用下述命令進入檔案

sudo vim /etc/security/limits.conf

進入後若想限制每一個使用者的記憶體使用量不能超過20G左右,則在最下面新增下圖中的語句

* hard rss 21000000

若想限制某個使用者test的記憶體使用量不能超過20G左右,則可新增下圖中的命令

@test hard rss 21000000

做一下說明,上面我們寫的四個欄位的意思分別是:(1) 加*號表示對所有使用者起作用,加@test表示只對某個名叫test的使用者起作用。(2) hard說明是硬上限,你也可以改成soft,也即軟上限。(3) rss表示我們限制的是記憶體的使用量。(4) 21000000(單位KB)表明我們限制的量大概是20GB。


2. 修改上面的檔案並儲存之後,我們再用下述命令

sudo vim /etc/pam.d/login

進入檔案,在最下面新增如下一句話,然後儲存。

session required /lib/security/pam_limits.so


3. 退出賬戶在重新登陸,使用下述命令可以檢視記憶體配額

ulimit -a

結果如下圖

上圖表明我們已經成功將使用者的記憶體使用上線設定成20G了。



作者:餘含軍
連結:https://www.jianshu.com/p/b6fb59508c7b
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出