quotaは、ユーザに対してハードディスクの使用制限をするツールです。 ユーザごとに、使用容量やファイル数などを制限することができます。
quotaが動作するために必要な環境を整え、quotaをインストールします。
quotaを使用するには、システムパーテション以外のパーテションが必要です。
システム用のパーテションにはquotaを使用できませんので、
あらかじめ、ユーザ領域などのquotaを使いたい領域は別パーテションにしておく必要があります。
quotaを実行するにはカーネルがquotaをサポートしている必要があります。
サポートしていない場合はカーネルの再構築の必要があります。
カーネル再構築を参考にして下さい。
もちろん、すでにquota supportが組み込まれている場合は再構築は不要です。
quotaのソースをコンパイルしてインストールします。
Linux# cd /usr/local/src Linux# zcat ../pub/quota-1_70_tar.gz |tar -xvf - Linux# make Linux# make install |
quotaの設定方法です。インストールされたquotaを動作させる方法について解説します。
quotaが起動時に動作するように設定します。
今回は、/etc/rc.d/rc.quotaを作り、/etc/rc.d/rc.localの最後に、それを動作させる設定を追加することにします。
Linux# cd /etc/rc.d Linux# vi rc.quota Linux# chmod 755 rc.quota Linux# vi rc.local |
#!/bin/sh # # Check quota and then turn quota on. if [ -x /sbin/quotacheck ] then echo "Checking quotas. This may take some time." /sbin/quotacheck -avug echo " Done." fi if [ -x /sbin/quotaon ] then echo "Turning on quota." /sbin/quotaon -avug fi |
if [ -x /etc/rc.d/rc.quota ]; then echo -n "Starting quota " /etc/rc.d/rc.quota start echo "." fi |
quotaを使用したいパーテションの準備をします。
/etc/fstabを修正します。
/dev/hda4 swap swap defaults 1 1 /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /var ext2 defaults 1 1 /dev/hda3 /home ext2 defaults 1 1 /dev/cdrom /cdrom iso9660 user,ro,noauto,exec 1 1 none /proc proc defaults 1 1 |
現在、fstabはこのようになっていて、ここでは、/home(/dev/hda3)でquotaを使用するとします。 この場合、/dev/hda3の行のdefaultの後ろに、usrquotaを追記します。
/dev/hda4 swap swap defaults 1 1 /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /var ext2 defaults 1 1 /dev/hda3 /home ext2 defaults,usrquota 1 1 /dev/cdrom /cdrom iso9660 user,ro,noauto,exec 1 1 none /proc proc defaults 1 1 |
ここで、システムパーテション(上記の例では/dev/hda1)にquotaを設定しようとすると、 システムが立ち上がらなくなるので注意しましょう。
quotaが情報を記録するファイル、quota.userを作成します。
quotaを使用するパーテションがマウントされている場所、今回は/homeに作ります。
Linux# touch /home/quota.user Linux# chmod 600 /home/quota.user |
これらの設定が終了した段階でマシンを再起動します。
ここでは、hasimotoというユーザに対して制限をかけてみます。
Linux# edquota hasimoto |
edquotaコマンドを使うと、ユーザに対してquotaを設定できます。
エディタが起動しますので、設定を書き直してください。
Quotas for user hasimoto: /dev/hda3: blocks in use: 1, limits (soft = 10, hard = 15) inodes in use: 1, limits (soft = 3, hard = 4) |
blocksが容量の制限(単位はキロバイト)、inodesがファイル数の制限になります。
上記の例では動作実験のため、わざと設定値を小さくしてあります。
制限にはsoft limitとhard limitの2種類があり、hard limitは絶対的な限界で、それ以上はディスクを使うことができません。
soft limitを超えてディスクを使うと警告され、Glace period(後述)の設定時間をこえるまでは、使用することができます。
soft limitの使用可能時間を設定します。
Linux# edquota -t |
edquotaコマンドに-tオプションをつけて実行することで、glace priodを設定することができます。 エディタが起動するので、設定を書き直します。
Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda3: block grace period: 7 days, file grace period: 7 days |
なお、時間の単位としては、sec(秒)、min(分)、hour(時間)、day(日)、week(週)、month(月)が使用できます。
現在のquotaの状態を確認します。
Linux# quotacheck -a Linux# repquota -a Block limits File limits User used soft hard grace used soft hard grace root -- 302 0 0 25 0 0 joe -- 71 0 0 72 0 0 hasimoto -- 2 10 15 2 3 4 |
また、各ユーザレベルで、quotaコマンドを実行することで、自分のディスク使用状態を知ることができます。
Linux# quota Disk quotas for user hasimoto (uid 21002): Filesystem blocks quota limit grace files quota limit grace /dev/hda3 2 10 15 2 3 4 |