なお、ルートディレクトリ:/のあるパーティションにはquotaを使用できません。
ですから、システムをインストールする時に将来的な使用条件を十分に考慮して
パーティション分けしておかなければなりません。
例えばmailサーバの場合、ディレクトリ/var以下にユーザのメールを保存する事が多いので、
あらかじめ/varをシステムとは別のパーティションにしておくと良いでしょう。
httpサーバ、ftpサーバなども同様です。
8.1 ソフトの入手 |
http://metalab.unc.edu/pub/Linux/distributions/slackware/source/ap/quota/
8.2 インストールと設定 |
8.2.1 カーネルの再構築
quotaを使うにはカーネルパラメータCONFIG_QUOTAを有効にしてカーネルを 再構築する必要があります。CONFIG_QUOTA=y |
8.2.2 インストール
ファイルを展開するディレクトリ$Workに移動して、バイナリパッケージを展開します。 今回は作業ディレクトリ$Workを/usr/local/srcとします。
展開が終ったらディレクトリ./quotaに移動し、
"make"と"make install"を行ないます。
8.2.3 起動スクリプト
マシンの起動時にquotaを起動するようにquotaの起動スクリプトを書きます。 ここではquotaの起動コマンドを/etc/rc.d/rc.localへ追加することにします。if [ -x /sbin/quotacheck ] then /sbin/quotacheck -avug fi if [ -x /sbin/quotaon ] then /sbin/quotaon -avug fi |
8.2.4 /etc/fstabの変更
次に、quotaを使用するパーティションを指定するために、 /etc/fstabに変更を加えます。/dev/hda1 swap swap defaults 0 0 /dev/hda3 / ext2 defaults 1 1 /dev/hda2 /var ext2 defaults,usrquota 1 1 /dev/hda5 /pub ext2 defaults 1 1 /dev/hda6 /home ext2 defaults,usrquota 1 1 /dev/hda7 /works ext2 defaults 1 1 /dev/hda8 /backup ext2 defaults 1 1 none /proc proc defaults 0 0 |
8.2.5 記録ファイルの生成
このファイルはquotaを設定するディレクトリ(=パーティション)毎に作成します。
今回はパーティション:/dev/hda2 (=/var)と/dev/hda6 (=/home)
にquotaを設定しますので、
ディレクトリ/varと/home以下に記録ファイルquota.userを作成します。
% cd /var % touch quota.user % chmod 600 quota.user % cd /home % touch quota.user % chmod 600 quota.user |
8.3 運用 |
8.3.1 quotaの設定
各ユーザ毎のquotaの設定するには"edquota"コマンドを使います。
ここでは"foo"というユーザに対してquotaの設定を行ないます。
:注 ここで起動するエディタは環境変数EDITERに設定されているもの、例えばvi、です。
ここでblock(s)とinode(s)、limitsのsoftとhardについて説明します。
雑ないい方をすれば、block(s)とはディスクの記憶容量の単位で、ディスクのフォーマット時に定めます。
私のシステムでは1 blockが1024[byte] = 1 [Kbyte]です。
inodeはもともとUnix系OSでのファイルシステム管理用構造体の名称で、
1ファイルに1 inodeが対応します。つまりinodeの制限はファイル数の制限です。
soft limitsは一時的にはその制限を越えることが許され、
hard limitsはその制限を越えることができません。
ここで「一時的」というのは後に示す"Grace period"で設定される時間内のことです。
以下の例では、ユーザfooは/dev/hda2において、
1000 [blocks] = 1 [Mbyte]のソフト制限と1500 [blocks] = 1.5 [Mbyte]のハード制限があり、
且つ300 ファイルまでのソフト制限と400ファイルまでのハード制限が課せられています。
/dev/hda6も同様です。
Quotas for user foo: /dev/hda2: blocks in use: 0, limits (soft = 1000, hard = 1500) inodes in use: 1, limits (soft = 300, hard = 400) /dev/hda6: blocks in use: 541, limits (soft = 10000, hard = 15000) inodes in use: 1, limits (soft = 3000, hard = 4000) |
Grace Periodを設定するには"edquota -t"コマンドを使います。
Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda2: block grace period: 7 days, file grace period: 7 days /dev/hda6: block grace period: 7 days, file grace period: 7 days |
8.3.2 quotaの状態確認
システムのquotaの状態を確認するには、まず"quotacheck"コマンドでディスクの使用状況を検査し、
"repquota"コマンドで結果を出力します。
以下に例を示します。
ここでは上段に/dev/hda2、下段に/dev/hda6の状態が示されています。
% quotacheck -a % repquota -a Block limits File limits User used soft hard grace used soft hard grace root -- 9776 0 0 1157 0 0 daemon -- 2 0 0 3 0 0 nobody -- 589 0 0 2 0 0 Block limits File limits User used soft hard grace used soft hard grace root -- 82765 0 0 5443 0 0 hironobu -- 12582 0 0 1507 0 0 foo +- 541 10000 15000 none 12 3000 4000 |
各ユーザも自身のターミナルからコマンド"quota"を使って、
自身のディスクの使用状態や制限状態をみることができます。
% quota Filesystem blocks quota limit grace files quota limit grace /dev/hda6 541 10000 15000 none 12 3000 4000 |
home |index |previous |next |contents