Linux では、次のいずれかの方法でディスク クォータを設定できます:
- ファイル システムのベース ディスク クォータの割り当て
- ユーザーまたはグループに基づくディスク クォータの割り当て
ユーザーまたはグループ ベースのクォータでは、次の 3 つの重要な要素を考慮する必要があります。
- ハード リミット – たとえば、2 GB をハード リミットとして指定すると、ユーザーは 2 GB を超えると新しいファイルを作成できなくなります
- ソフト リミット – たとえば、ソフト リミットとして 1 GB を指定すると、ユーザーが 1 GB の制限に達すると、「ディスク クォータを超えました」という警告メッセージが表示されます。ただし、ハード リミットに達するまでは、引き続き新しいファイルを作成できます
- 猶予期間 – たとえば、猶予期間として 10 日間を指定した場合、ユーザーがハード リミットに達した後、さらに 10 日間、新しいファイルを作成することが許可されます。その期間内に、割り当て制限に戻すように努める必要があります。
1.ファイルシステムでクォータ チェックを有効にする
最初に、クォータ チェックを許可するファイル システムを指定する必要があります。
/etc/fstab を変更し、キーワード usrquota と grpquota を、監視したい対応するファイルシステムに追加します。
次の例は、/home ファイルシステムでユーザーとグループの両方のクォータ チェックが有効になっていることを示しています
# cat /etc/fstab LABEL=/home /home ext2 defaults,usrquota,grpquota 1 2
上記の変更後、サーバーを再起動してください。
2. quotacheck を使用した Linux ファイルシステムの初期クォータ チェック
ファイルシステムでディスク クォータ チェックを有効にしたら、以下に示すように、最初にすべてのクォータ情報を収集します。
# quotacheck -avug quotacheck: Scanning /dev/sda3 [/home] done quotacheck: Checked 5182 directories and 31566 files quotacheck: Old file not found. quotacheck: Old file not found.
上記のコマンドで:
- a:クォータが有効なすべてのファイル システムを確認する
- v:詳細モード
- u:ユーザーのディスク クォータを確認する
- g:グループのディスク クォータを確認する
上記のコマンドは、以下に示すように、ファイルシステム ディレクトリの下にユーザーとグループの aquota ファイルを作成します。
# ls -l /home/ -rw------- 1 root root 11264 Jun 21 14:49 aquota.user -rw------- 1 root root 11264 Jun 21 14:49 aquota.group
3. edquota コマンドを使用してユーザーにディスク クォータを割り当てる
以下に示すように edquota コマンドを使用して、特定のユーザーのクォータ情報を編集します。
たとえば、ユーザー「ramesh」のディスク クォータを変更するには、edquota コマンドを使用します。これにより、以下に示すように、エディターでソフト制限値とハード制限値が開きます。
# edquota ramesh Disk quotas for user ramesh (uid 500): Filesystem blocks soft hard inodes soft hard /dev/sda3 1419352 0 0 1686 0 0
edquota コマンドがエディターで特定のユーザーのクォータ設定を開くと、次の制限を設定できます:
- 特定のユーザーのディスク クォータ サイズのソフト制限とハード制限
- 特定のユーザーに許可される inode の総数のソフト制限とハード制限
4. repquota を使用して、ユーザーとグループのディスク クォータの使用状況を報告します
以下に示すように、repquota コマンドを使用して、ユーザーとグループのディスク クォータの使用状況を報告します。
# repquota /home *** Report for user quotas on device /dev/sda3 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 566488 0 0 5401 0 0 nobody -- 1448 0 0 30 0 0 ramesh -- 1419352 0 0 1686 0 0 john -- 26604 0 0 172 0 0
5.毎日の cron ジョブに quotacheck を追加
quotacheck を毎日の cron ジョブに追加します。以下に示すように、/etc/cron.daily ディレクトリの下に quotacheck ファイルを作成し、毎日 quotacheck コマンドを実行します。これにより、 quotacheck コマンドの出力がルート メール アドレスに送信されます。
# cat /etc/cron.daily/quotacheck quotacheck -avug