2014年4月16日 星期三

CentOS 設定磁碟配額 quota

CentOS 設定磁碟配額 quota

# cat /etc/redhat-release
CentOS release 6.5 (Final)


將設定寫入 fstab
# vi /etc/fstab
在需要做磁碟配額的磁碟機加入設定
defaults 後面加 ,usrquota,grpquota

UUID=1a180a75-2b14-479d-ba16-f25ad85dcf81 /home                   ext4    defaults,usrquota,grpquota        1 2





重新啟動電腦
# sync
# reboot



quotacheck -avug
( quotacheck -avug -m 強制掃描 )
如果無法產生 aquota.user、aquota.group
就要用touch /home/aquota.user aquota.group


因 Selinux 設定錯誤無法產生 aquota.user、aquota.group 紀錄
quotacheck: Cannot rename new quotafile /home/student/aquota.group.new to name
/home/student/aquota.group: 拒絕不符權限的操作

原設定
# ls -Z aquota.user
-rw-------. root root unconfined_u:object_r:user_home_t:s0 ad/aquota.user
變更型態
# chcon -R -t quota_db_t aquota.user aquota.group
# ls -Z aquota.user
-rw-------. root root unconfined_u:object_r:quota_db_t:s0 aquota.user

重跑 quotacheck -avug



編輯個人磁碟配額
edquota 帳號
Filesystem blocks soft hard inodes soft hard
掛入點 約等於1K 警告 上限 檔案 警告 上限



edquota 的參數
-u 編輯 user quota
-g 編輯 group quota
-p 指定一個設定為範本,複製給其他 user
-t 設定超過 soft limit 的緩衝期限

edquota -u a
edquota -p a * 以帳號 a 為範本套用至所有 user (需在 user 家目錄上層做)

quotaoff -avug 關閉quota
quotaon  -avug 開啟quota


範例
Disk quotas for user cnxxxxx (uid xxx):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hda10                        0          0          0          0        0        0
  /dev/hda6                       xxx      14000      16000        xxx        0        0



檢查 quota
quota -v 查自己的使用情形
quota -gv 查自己群組的使用情形 
quota -vu 帳號 查某人使用情形(root用)
quota -a 列出所有的報表



應用
repquota -a | grep + 查超額使用者

-------------------------------------------------------------------------------
檢查配額狀況
http://www.cses.tc.edu.tw/~chihwu/file/91summer_admin.pdf
範例:(清水國小吳仁智老師)
1*/3*** repquota -aug | grep + > /var/www/html/quota.rep 定時建立超量使用者資料
5*/3*** mail -srep.txt chihwu@cses.tcc.edu.tw < /var/www/html/quota.rep 定時寄給管理者
用 php 把配額狀況顯示在網頁上
*******************************************************
<?php
 $fd = fopen("quota.rep", "r");
 echo "<tr><b><td colspan=5 ><font size=\"+1\" > <b>
以下同學請注意你的 P: 磁碟機用量</td></tr><tr>";
 while ($buffer = fgets ($fd, 4096))
 {
$i++;
$a = explode (" ",$buffer);
echo "<td width=\"100\"> $a[0] </td>";
if ( $i % 5 ) echo "";
else echo "</tr>";
 }
 fclose($fd);
 echo "<tr><td colspan=5 >磁碟機用量統計兩小時更新一次
 </td></tr></b>";
 ?>
******



重新檢查 quota
quotaoff -avug
quotacheck -avug
quotaon -avug


quota:命令找不到
安裝
# yum install quota

沒有留言:

張貼留言