はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2017/02/18
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> その他 >> ユーザ毎のディスク使用容量制限
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / CentOS4 / CentOS5 / CentOS6 ]
  1. quotaとは・・・
  2. 「quota」を有効にする
  3. ユーザの使用容量を設定する
  4. 「quota」の動作確認
  5. 猶予期間の設定

■ quotaとは・・・

サーバに登録したユーザは自分のホームパスに書き込みに関する使用制限はありません。(ディスク容量が許す限り使用できます。)
ISPなどで、ホームページ使用容量が100MByteとか使用制限している様に自サーバのユーザにもディスク使用制限を行う方法を紹介します。

この機能を利用するには「quota」と言うパッケージで行うことができます。

■ 「quota」を有効にする

パッケージ「quota」がインストールされているか確認
# rpm -q quota
quota-3.10-2

上記の様に、コマンド実行結果が何も表示されない場合はインストールされていないので
「quota」をインストールする必要があります。

quotaのインストール
# yum -y install quota


「quota」が有効になっているか確認
# vi /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/sda3               swap                    swap    defaults        0 0
/dev/cdrom              /mnt/cdrom              udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu 0 0
/dev/sdb1               /home                   ext3    defaults,usrquota 1 2
/dev/sdb2               /extdisk2               ext3    defaults        1 2

usrquotaが存在していなければ、追加してください。
上記の例では、「/home」に対して機能します。

一度、システムを再起動します
# reboot

ディスクの使用量記録ファイルの作成
# quotacheck -a
# ls -l /home/aquota.user
-rw-------  1 root    root    7168  6月 29 23:12 aquota.user

■ ユーザの使用容量を設定する

ユーザ「linux」に対して使用制限をかける
# edquota -u linux
Disk quotas for user linux (uid 501):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                      3332        512       1024         51        0        0

上記の「soft」と「hard」が、使用制限量となります。
「soft」は、設定された大きさを超えると警告を発します
「hard」は、設定された大きさを超えると書き込みができなくなります。
値の単位はキロバイトで指定します。

quotaを有効にします。
# quotaon -av
/dev/sdb1 [/home]: user quotas turned on

■ 「quota」の動作確認

使用制限をかけたユーザ「linux」でログイン
Fedora Core release 2 (Tettnang)
Kernel 2.6.10-1.771_FC2 on an i686
login: linux
Password:
Last login: Wed Jun 29 23:34:14 from 192.168.1.10
自分のホームパスをキロバイトで表示
[linux@fedora linux]$ ls -kl
使用している容量は510KByte
-rw-r--r--  1 linux linux 510  6月 29 23:34 wk

複製を作成して512KByteを超えさせてみる
[linux@fedora linux]$ cp wk wk1
警告メッセージが出力された
sdb1: warning, user block quota exceeded.

自分のホームパスをキロバイトで表示
[linux@fedora linux]$ ls -kl
使用している容量は510KByte×2ファイルで1020KByte
-rw-r--r--  1 linux linux 510  6月 29 23:34 wk
-rw-r--r--  1 linux linux 510  6月 29 23:35 wk1

もう一度、複製を作成して1024KByteを超えさせてみる
[linux@fedora linux]$ cp wk wk2
警告と超過メッセージが出力された
sdb1: write failed, user block limit reached.
cp: writing `wk2': ディスク使用量制限を超過しました

自分のホームパスをキロバイトで表示
[linux@fedora linux]$ ls -kl
-rw-r--r--  1 linux linux 510  6月 29 23:34 wk
-rw-r--r--  1 linux linux 510  6月 29 23:35 wk1
操作で超過したファイルの書き込みはできていない(0Byte)
-rw-r--r--  1 linux linux   0  6月 29 23:38 wk2

■ 猶予期間の設定

猶予期間を変更する事も可能です。この猶予期間は、設定された値を過ぎると「soft」→「hard」になります。
オーバーした容量は、ファイルを操作(Openなど)する度に削除されます。
デフォルトでは7日間(1週間)の猶予期間となっています。設定できる単位は「days, hours, minutes, seconds」です。

猶予期間の編集
# edquota -t
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/sdb1                     7days                  7days

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2017 First home server construction. All Right Reserved.