« vsftpdの設定 | メイン | PERLモジュールのダウンロード »

quotaでディスクの使用制限をかける

●事前準備

# vi /etc/fstab
---
/dev/md2 /home ext3 defaults,usrquota,grpquota 1 1
---

# mount -o remount /home (再マウント)
or
# reboot

確認コマンド
# mount
---
/dev/sda2 on /home type ext3 (rw,usrquota,grpquota)
---
このような表示がされたらquota機能が使える状態です。

次は実際にユーザ使用量を確認します。

# quotacheck -faugv
# quotacheck -faugvm

a: /etc/mtab にある NFS 以外の全てのファイルシステムをチェックする
f: quota が有効にされているファイルシステムに対して quota ファイルをチェック
u: ユーザクオータのチェック
g: グループクオータのチェック
v: 画面に進行状況を表示
m: ファイルシステムをリードオンリーで再マウントしない(強制的なチェック)

quotacheckコマンドはファイルシステムを読み出し専用で再マウントし,チェックします。
(mオプションをつけるとこの動作はしない)
終わったら元のモードに戻します。

もし/(ルート)ファイルシステムをチェックする場合は -m オプションもつけます。
これでファイルシステムのルート(/home)に aquota.usesr と aquota.group が作成されています。

次のコマンドでquota機能をonにします。

# quotaon -augv


●実際に制限をかける

ユーザhoge1に対して1Mしか許可しない設定の場合はブロック単位でのハード制限を設定する。
edquotaコマンドを実行するとデフォルトでviが起動します。

# edquota hoge1
---
Disk quotas for user hoge1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 40 0 1024 11 0 0
---
それぞれの意味は順番に,
 ファイルシステム名
 使用中のブロック数
 ブロック単位でのソフト制限
 使用中のノード数
 ノード数でのソフト制限
 ノード数でのハード制限
となります。

●運用時の注意点

マシン再起動時に自動的にクオータのチェックが行われますが,24時間起動のマシンだとcronで定期的にquotacheckコマンドをかけてquota.userとquota.groupを更新してやる必要があります。

●確認コマンド

# repquota -augv