歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux批量設置用戶磁盤配額

Linux批量設置用戶磁盤配額

日期:2017/2/28 15:53:35   编辑:Linux教程

設置規則:
1、每個用戶最多只能存放20MB的文件,而且最多只能建立200個文件。
2、當建立超過100MB大小的文件,以及超過100個文件時,就警告用戶。
3、因為有一些用戶已經超出了上述限制,所以我們必須先用電子郵件通知用戶,盡快處理多余文件。
2、由於事發突然,為了避免強烈的用戶反映,先給每一個用戶7天的期限,以便用戶有機會備份文件;但當7天後就把期限自動改為2天。

解決辦法:
1、設置每一個用戶帳號的磁盤配額。
2、設置完畢後立即寄發通知信給所有超出限制的用戶。
3、7天後自動將期限改為2天。

步驟:
1、設置每一個用戶帳號的磁盤配額。
使用edquota配合-p參數
先使用edquota手動配置好一個用戶的磁盤配額設置,然後將其設置為范本,調用到其它用戶上,執行命令為:
dequota [-u|-g] -p TEMPNAME NAMES
其中TEMONAME就是模板用戶的名稱,而NAMES則是要調用的所用的用戶名稱。例如:
dequota -p jacky allen bill cherry
這個例子就是以jacky為模板,將jacky的磁盤配額設置調用到 allen bill cherry等用戶的身上。
另一種使用方法為使用setquota工具。配合Shell的循環技巧,設置每一個用戶的磁盤配額。
for user in jacky allen bill cherry;
do
setquota ${user} 10240 20480 100 200/data
done
這種方法需要輸入大量用戶名字。
這裡可以用awk將UID大於等於500的普通用戶提取出來。
awk -F: '{ if($3>=500) print $1}' /etc/passwd
再將上述結果交給edquota使用即可。
awk -F: '{ if($3>=500) print $1}' /etc/passwd |xargs edquota -p jacky
使用setquota為
for user in (awk -F: '{ if($3>=500) print $1}' /etc/passwd);
do
setquota ${user} 10240 20480 100 200/data
done
2、設置完畢後立即寄發通知信給所有超出限制的用戶。
我們可以通過warnquota寄出電子郵件給那些超過磁盤配額限制的用戶。但warnquota會以/etc/warnquota.conf
的內容產生英文郵件,況且我們想定制郵件,雖然我們可以修改/etc/warnquota.conf但是只需基礎一次郵件,以後
不會寄出。寄出去後還需要還原回來。
所以我們可以產生一個與/etc/warnquota.conf格式相同文件。例如,我在我的~/warnquota.conf
MAIL_CMD = "/usr/sbin/sendmail -t"
FROM =
SUBJECT =注意:你已經超出了磁盤配額的限制了
CC_TO = "root@localhost"
SUPPORT = "[email protected]"
PHONE = "15*********"
MESSAGE =您好,你的磁盤配額已超過警戒值,|請刪除不必要文件。
SIGNATURE = [email protected]
然後執行下列命令,就可以令warnquota暫時使用我們的配置文件也就是(~/warnquota.conf )寄出所有的電子郵件了。
[root@guo ~]# warnquota -c ~/warnquota.conf
3、7天後自動將期限改為2天(自動修改日期)。
可以使用兩種方法來設置磁盤配額的系統期限,第一種是通過edquota:
edquota -t
執行上述命令後,edquota會開啟$EDITOR環境變量定義的編輯軟件,讓你設置磁盤的配額的期限。
然後用at進行定時服務。

at 0am+7days

將期限改為2天。

到這裡所有的需求任務全部完成。

Copyright © Linux教程網 All Rights Reserved