Linux Tips | |
ディスクの使用量を制限するには 北浦訓行 |
ディスクの使用量を制限するには、quotaを使用する。最近のディストリビューションならquotaは含まれていると思うが、念のため、
$ rpm -qa | grep quota |
などでquotaがインストールされているかどうかを確認するといいだろう。
最初に、quotaを使用するための設定をファイルシステムに対して行う。/etc/fstabをテキストエディタで開いて、quotaを使用するパーティションに対してusrquotaというオプションを追加する。
/dev/hda5 / ext2 defaults,usrquota 1
1 |
なお、quotaはグループに対しても設定することができる。その場合は、grpquotaというオプションを指定する。上記の場合だと、usrquotaの後ろに「,grpquota」を追加すればいい。
/etc/fstabの編集が終わったらエディタを終了し、ディスクを再マウントすればquotaが有効になる。mountコマンドで、quotaが有効になったかどうかを確認することができる。quotaを設定したデバイス(この場合は/dev/hda5)に「usrquota」という記述があれば、quotaは有効になっている。
# mount -o remount / |
quotaの起動は/etc/rc.d/rc.sysinitで行うが、最近のディストリビューションでは、すでに設定が行われている。/etc/rc.d/rc.sysinitに以下のような記述があるはずだ。
if [ -x /sbin/quotaon ]; then |
次に、ディスクの使用状況などを保存するために、quotaのデータベースファイルを作成する。quotaのデータベースファイルは、対象となるディスクのマウントポイントに作成する。この例では、「/」に作成することになる。ファイル名は、ユーザーに対して制限をかける場合はquota.user、グループに対して制限をかける場合はquota.groupとなる。quotaのデータベースファイルの所有者はrootとし、rootだけが読み書きできるように設定する。
# cd / |
続いて、具体的な制限内容についての設定を行う。設定は、edquotaコマンドを使用する。
# edquota ユーザー名 |
グループに対する設定の場合は、以下のように-gオプションを付ける。
# edquota -g グループ名 |
edquotaコマンドを実行すると、テキストエディタ(デフォルトではvi)が起動し、以下のような内容が表示される。
Quotas for user ユーザー名: |
「blocks in use」は、ユーザーが使用しているブロック数で、単位はKbytesだ。「inodes in use」は、ユーザーが使用しているファイルの総数である。
quotaでは、blockとinodeの両方に「Soft Limit」と「Hard Limit」という2種類の制限を設けることができる。
Soft Limitは、ユーザーがパーティション内で使用できるディスクの最大量を示すが、後述するGrace Period が設定されているときは、この最大量が境界線となる。そして、ディスクの使用量が境界線を越えると警告メッセージが表示される。
Hard Limitは、使用可能なディスクの絶対的な容量であり、ユーザーはHard Limit を超えることはできない。ここでは、例として以下のように設定した。
Quotas for user ユーザー名: |
Soft Limit、Hard Limitとも、「0」を設定すると制限を設けないことになる。
Grace Periodを設定すると、Soft Limitに対して時間的な猶予を与えることができる。Grace Periodは、-tオプションを付けてedquotaコマンドを実行する。
# edquota -t |
テキストエディタが起動して、以下のように表示される。
Time units may be: days, hours, minutes, or seconds |
「block grace period: 0 days」がblock(ディスク容量)に対する制限が課せられるまでの時間を、「file grace period: 0 days」がinode(ファイル数)に対する制限が課せられるまでの時間を示している。指定できる時間の単位は、sec、min、hour、day、week、monthだ。
グループに対するGrace Periodの指定は、以下のように行う。
# edquota -t -g |
以上でquotaの設定は完了だ。quotaによる制限を超過した場合、以下のような警告メッセージが表示される(この例はVine Linux 2.1)。
$ cp big-file.zip bif-file2.zip |
さて、quotaによりディスクの使用量が制限された場合、ユーザーは常にディスク容量に注意を払わなければならない。現在の使用量や容量のリミットなどを知りたいときは、quotaコマンドを使用する。
$ quota |
「blocks」は現在の使用量を、「quota」はblocksのSoft Limitを、「limit」はblocksのHard Limitを表す。また、この例では、現在の容量がすでにSoft Limitを超えているので、「grace」に猶予の日数(ここでは残り7日間)が表示されている。その右の「files」は現在のファイル数を、「quota」はfilesのSoft Limitを、「limit」がfilesのHard Limitを表す(この例ではfilesの制限は設けていない)。
quotaを運用する場合、定期的にディスクの使用状況を調べて、quotaのデータベースを更新しなければならない。その作業を行うのがquotacheckコマンドだ。quotacheckはシステム起動時に実行されるが、24時間運用されるサーバーの場合は、cronで定期的に実行する必要がある(cronについてはプログラムを定期的に実行するには参照)。その場合は、-aオプションを付けてquotacheckコマンドを実行する。
また、現在のファイルシステムを確認するためのコマンドも用意されている。それがrepquotaだ。repquotaを実行すると、以下のような結果が表示される。
# repquota / |
ちなみに、quotacheck、repquotaコマンドは、rootのみが実行できるコマンドだ。
Linux Tips Index |
Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|