ユーザーごとにハードディスクの使用容量を制限する

Red Hat Linuxのページトップへ

インストール時の注意を参照

Quotaを使用する

Quotaがインストールされているか調べる
# rpm -q quota
quota-3.06-9 ←このような感じであればインストールされている

インストールされていなければダウンロードしてインストールする
# rpm -ivh quota-3.[バージョン].i386.rpm

/etc/fstabを変更し、quotaを使用したいパーテションの設定をする
注意:/etc/fstabは重要なファイルであり
システムパーテション(/dev/hda1、『/』のみの場所)にquotaの記述をするとOSが起動しなくなる

『/home』がある場所にusrquotaとgrpquotaを追記する
# gedit /etc/fstab
LABEL=/home   /home   ext3   defaults   1   2
↓
LABEL=/home   /home   ext3   defaults,usrquota,grpquota   1   2

quotaの制限情報が記録されるファイルを作成する
rootだけで扱えるようパーミッションを変えておく
(quotaを使用するパーテションがマウントされている場所『/home』に作る)
# touch /home/quota.user
# chmod 600 /home/quota.user
# touch /home/quota.group
# chmod 600 /home/quota.group
(面倒であれば# chmod 600 /home/quota.*)

ここで一度PCを再起動する
(または# mount -o remount /home)

mountコマンドで該当のパーティションにusrquota,grpquotaがあることで
quota が有効になっていることを確認することが出来る
# mount
…
/dev/hda3 on /home type ext3 (rw,usrquota,grpquota)
…

quotaの動作確認をする
# /sbin/quotacheck -avug
# /sbin/quotaon -avug
オプションの説明
a - 全ての容量制限有効な ローカルマウントのファイルシステムをチェックする
v - 容量制限のチェックが進むのと共に 詳細進行状態を表示する 
u - ユーザーディスク容量制限情報をチェック 
g - グループディスク容量制限情報をチェック 

/sbin/quotacheck -avug
quotacheck: Cannot remount filesystem mounted on /home read-only so
counted values might not be right.
Please stop all programs writing to filesystem or use -m flag to force
checking.
上のように出る場合は-mオプションを付けてリマウントしないようにする
/sbin/quotacheck -avugm
quotacheck: Scanning /dev/hda3 [/home] done
quotacheck: Checked 30 directories and 72 files

quotaの設定

# edquota [ユーザー名]
viエディタが起動するので設定を書き直す

文字の挿入 a → 記入後[Esc]
文字の削除 x
保存 :w
終了 :q
保存&終了 :wq
quota設定例 Disk quotas for user [ユーザー名] (uid ***): Filesystem blocks soft hard inodes soft hard /dev/hda3 60 30000 32000 14 100 120 blocks:容量の制限(単位はkバイト) inodes:ファイル数の制限 soft:設定した容量を超えると警告で知らせる hard:設定した容量を超えると以降は書き込みができなくなる 1MB=1024KB 300MB=300×1024=307200KB 320MB=320×1024=327680KB softlimitを超えてからの猶予期間(Glace period)を設定する必要がある Glace periodの設定 softlimitの猶予期間を設定する # edquota -t エディタが起動するので設定を書き直す Glace period設定例 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/hda3 7days 7days デフォルトでは7日 sec[秒]、min[分]、hour[時間]、day[日]、week[週]、month[月] quotaの状態確認 # quotacheck -a Quota設定の一覧 # repquota -a Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace root -- 568 0 0 57 0 0 [ユーザー名]-- 2 10 15 2 3 4 … 各ユーザーアカウントで、quotaコマンドを実行すると、ディスク使用状態がわかる # quota Disk quotas for user [ユーザー名] (uid ***): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 2 10 15 2 3 4 root権限で各ユーザのディスクの使用状態を見るには, 以下のようにする. # quota -v [ユーザー名] 同じ設定をほかのユーザーにコピーする # edquota -p [コピー元ユーザー名] [コピー先ユーザー名] グループ単位で容量制限をする # edquota -g [グループ名] 同じ設定をほかのグループにコピーする # edquota -gp [コピー元グループ名] [コピー先グループ名] 有効化 と 無効化 容量制限を0に変更せずに無効にする # quotaoff -vaug 有効にする # quotaon -vaug ファイルシステム単位で容量制限をする # edquota (オプションを忘れた…) 特定のファイルシステムの 容量制限を有効にする # quotaon -vaug /home -uと-gのどちらのオプションも 指定されていない場合、ユーザー容量制限のみ -gだけが指定されている場合、グループ容量制限のみ 定期的にquotacheckコマンドでquotaデータベースを更新しないといけないが quota有効ではチェックはできない 無効にする # quotaoff -vaug チェック # quotacheck /home 有効にする # quotaon -vaug

ぺんたん.info
あかいひ.com
IPくん.com
8枠.com - 競馬情報
galhime.com

PC Q&A||古い記事|雑学|ラーメン