●クォータの設定範囲
CentOS7で扱うxfsファイルシステムでディスククォータを設定する方法です。
xfsファイルシステムでは3種類の範囲でクォータ設定を行うことが出来ます。
●クォータの設定
xfsファイルシステムでクォータを設定する場合には、制限を行う対象があるパーティションをマウントする際に以下のオプションを指定する必要があります。/homeに対してクォータの設定を行いたい場合、/homeパーティションを事前に作成しておく必要があります。
マウントオプション設定
/etc/fstabでクォータ設定を行いたいパーティションにマウントオプションを追加します。
/homeディレクトリでクォータでサイズ制限を行いたい場合、下記のようにマウントオプションをします。
下記は「ユーザ(uquota)」「グループ(gquota)」「プロジェクト(pquota)」の全てを使用できるようにする場合の設定例です。
「/」にクォータ設定を行いたい場合
xfsファイルシステムで「/」パーティションでクォータの設定を行いたい場合は、/etc/fstabにマウントオプションを指定しても反映されませんので、
rootflagsでOS起動時のマウントオプションとして指定する必要があります。
実際の設定は/etc/default/grubのGRUB_CMDLINE_LINUXにrootflags=マウントオプションを追加して、/boot/grub2/grub.cfgに反映させます。
設定内容
GRUB_CMDLINE_LINUXにrootflagsでマウントオプションを指定します。
変更前
環境により設定されている内容は異なるかもしれませんが、下記の部分に設定を追加していきます。
変更後
最後にrooglags=uquota,gquota,pquotaを追加しました。
/boot/grub2/grub.cfgに設定反映
/etc/default/grubの編集が完了しましたら、grub2-mkconfigコマンドを使用して/boot/grub2/grub.cfgに設定を反映させます。
マウントオプション確認方法
現在適用されているマウントオプションは、mountコマンドや/etc/mtabを確認することで確認することが出来ます。
mountコマンド実行結果
「/dev/mapper/centos-root on /」部分で「usrquota,prjquota,grpquota」が有効になっていることが確認できます。
/etc/mtab表示
上記同様「/dev/mapper/centos-root on /」部分で「usrquota,prjquota,grpquota」が有効になっていることが確認できます。
●クォータ設定確認
xfsファイルシステムで、クォータの設定や情報表示等はxfs_quotaコマンドを使用します。
まず、現状のクォータ設定状況を下記コマンド確認してみてください。
「'report -h'」の部分に「-u」「-g」「-p」を追加すると、それぞれ「ユーザ」「グループ」「プロジェクト」に関する情報だけを表示させることが出来ます。
●ユーザクォータ設定
ユーザごとにクォータで制限を設定する場合は下記のように設定を行います。
ソフトリミット
この値を超えた場合一定期間はサイズを超えたままにしておけますが、期限が過ぎた場合は、データの作成・追加を行うことが出来なくなります。
ハードリミット
この値を超えてデータの作成・追加が行うことが出来なくなります。
設定例
ユーザauthtestにソフトリミット100MB、ハードリミット200MBでクォータの設定を行います。
まずは、ソフトリミットを超える150MBのデータを作成します。
追加で100MBのデータを作成すると、150MB + 100MB でクォータで制限したハードリミットの200MBを超えるので、その際の動作について確認します。
制限の解除
クォータの制限を解除する場合はサイズを「0」で設定します。
●グループクォータ設定
グループの範囲でクォータを適用させたい場合は、サイズを指定する際に「limit -g」と指定します。
設定例
事前に作成しておいたuserグループにクォータの設定を行います。
●プロジェクトクォータ設定
プロジェクトでクォータによる制限を行う場合、まずプロジェクトの設定を行う必要があります。
プロジェクトの設定は/etc/projectsと/etc/projidファイルで行います。
/etc/projid
/etc/projidファイルにはプロジェクト名とプロジェクトIDの紐づけを下記のように記述します。
/etc/projects
/etc/projectsプロジェクトIDとディレクトリをの組み合わせを下記の書式で設定します。
プロジェクト作成
/etc/projidと/etc/projectsファイルの作成が完了しましたら、次に下記コマンドでプロジェクトの登録を行います。
クォータ設定
プロジェクト範囲でクォータを適用させたい場合は、xfs_quotaコマンドでサイズを制限する際に「limit -p」と指定します。
設定例
先ほど作成した「test_project」にクォータによるサイズ制限を設定していきます。
動作確認
プロジェクトとして登録した/home/user1ディレクトリで150MBのデータを作成してソフトリミットの制限に掛かるか確認してみます。
●warnquotaでクォータの警告メールを送信
CentOS 7でwarnquotaを使用して、クォータの制限を超えたユーザに警告をメール送信を行えるようにする手順です。警告をメールを送信するため、SMTPサーバが使用できることが前提条件となります。
インストール
warnquotaのインストールします。
設定
警告メール送信するために、下記のファイルを設定してきます。
quotatab
warnquotaから送信される警告メールには、ディスク使用量に関するレポートが記述されるのですが、/etc/quotatabで設定を行わない場合、クォータの制限に該当した場所がデバイス名で表示されてしまいます。
例えば、/homeにクォータの制限を設定している場合、警告メールにはクォータの制限に掛かっているパーティション情報として/dev/mapper/centos-homeといったデバイス名が記述されますが、一般のユーザはどのパーティションの事なのか判別しづらいと思われます。
設定内容
/dev/mapper/centos-homeが「/home Directory」と表示されるように設定を行っています。
表示例
/etc/quotatab編集後は、下記のようにどこのパーティションについてのことなのかが、わかりやすく表示されます。
設定は必須ではありません
/etc/quotatabは設定を行わなくても警告メールを送信することが出来るのですが、特に手間も掛かりませんので設定しておいたほうがユーザにやさしいので設定を行っておいたほうが良いでしょう。
warnquota.conf
/etc/warnquota.confでは、警告メールのメッセージの内容を設定することが出来ます。
変更内容
とりあえず動作確認を行うために、送信元のメールアドレスを変更してみます。
設定項目は下記の項目で、root@example.comの部分を自サーバの情報に変更します。
FAIL項目について
下記の設定がある場合は、頭に「#」をつけて「FAIL」無効化してください。
●warnquota実行
設定が完了したら実際にwarnquotaコマンドを実行しクォータの状態をチェックさせますが、「ユーザに設定されているクォータ」と「グループに設定されているクォータ」ではチェックの方法が異なりますので、それぞれの方法について説明します。
ユーザに設定されているクォータのチェック
「warnquota -s」コマンドを実行することで、ユーザクォータの状態をチェックしサイズ制限を超過しているユーザにメールを送信してくれます。
「-s」オプションは、警告メールに記述するディスク使用量のレポートの数字を分かりやすく表示させるためのオプションです。
差出人、CC、署名の表示がwarnquota.confで設定した通りになっていることも確認できます。
ちなみに、「-s」オプションを設定せずにwarnquotaを実行すると、ディスクの使用量が一目ではわかりづらい表記になってしまいます。
グループに設定されているクォータのチェック
グループに設定されているクォータをチェックしてメールを送信する場合は「-g」オプションを指定します。
/etc/quotagrpadminsの書式は中身を確認してみてもらうとすぐにわかりると思いますが、下記のようになっています。
設定例
userグループに設定されているクォータの制限を超過した場合、authtestユーザに警告メールを送信するには下記のように設定を行います。
●warnquota定期実行
手動で「warnquota」を実行して警告メールが正常に届くことが確認できましたら、「warnquota」を定期的に実行させるように設定を行っていきます。
warnquota自体には定期的に実行する機能が無いため、定期的に実行するためには「crontab」等に登録する必要があります。
本手順では/etc/crontabに登録して定期的に実行させることにします。
warnquotaを実行させる間隔は適宜決めてください。
設定例
1時間ごとにメールを送信
毎時「0」分に実行したい場合は下記のように設定します。
一日一回メールを送信
毎朝7:00に実行したい場合は下記のように設定します。
●警告メッセージの編集
初期設定で用意されている警告メールは、件名や本文がすべて英文なのでユーザにあまりやさしくありませんが、/etc/warnquota.confで簡単に内容を編集してメッセージの内容や件名を日本語に設定することができます。
設定できる項目は色々とありますが、通常は下記の項目を編集するぐらいで大丈夫だと思います。
特殊文字
MESSAGESとGROUP_MESSAGEでメッセージを設定する際には下記の特殊文字を使用することが出来ます。
設定例
設定例として下記の内容で設定を行ってみました。
※root宛メールを別アカウントに転送しています。
メッセージは自由に設定できるので、色々と試してみてください。
CentOS7で扱うxfsファイルシステムでディスククォータを設定する方法です。
xfsファイルシステムでは3種類の範囲でクォータ設定を行うことが出来ます。
- ユーザ
- グループ
- プロジェクト
●クォータの設定
xfsファイルシステムでクォータを設定する場合には、制限を行う対象があるパーティションをマウントする際に以下のオプションを指定する必要があります。/homeに対してクォータの設定を行いたい場合、/homeパーティションを事前に作成しておく必要があります。
オプション | 説明 |
---|---|
uquota | ユーザのクォータ設定 |
uqnoenforce | ユーザ毎のクォータ設定(通知のみ) |
gquota | グループのクォータ設定 |
gqnoenforce | グループのクォータ設定(通知のみ) |
pquota | プロジェクトのクォータ設定 |
pqnoenforce | プロジェクトのクォータ設定(通知のみ) |
マウントオプション設定
/etc/fstabでクォータ設定を行いたいパーティションにマウントオプションを追加します。
/homeディレクトリでクォータでサイズ制限を行いたい場合、下記のようにマウントオプションをします。
下記は「ユーザ(uquota)」「グループ(gquota)」「プロジェクト(pquota)」の全てを使用できるようにする場合の設定例です。
# vi /etc/fstab /dev/centos/home /home xfs defaults,uquota,gquota,pquota 0 0リブートします。
# reboot
「/」にクォータ設定を行いたい場合
xfsファイルシステムで「/」パーティションでクォータの設定を行いたい場合は、/etc/fstabにマウントオプションを指定しても反映されませんので、
rootflagsでOS起動時のマウントオプションとして指定する必要があります。
実際の設定は/etc/default/grubのGRUB_CMDLINE_LINUXにrootflags=マウントオプションを追加して、/boot/grub2/grub.cfgに反映させます。
# vi /etc/default/grub
設定内容
GRUB_CMDLINE_LINUXにrootflagsでマウントオプションを指定します。
変更前
環境により設定されている内容は異なるかもしれませんが、下記の部分に設定を追加していきます。
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
変更後
最後にrooglags=uquota,gquota,pquotaを追加しました。
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota,pquota"
/boot/grub2/grub.cfgに設定反映
/etc/default/grubの編集が完了しましたら、grub2-mkconfigコマンドを使用して/boot/grub2/grub.cfgに設定を反映させます。
# grub2-mkconfig -o /boot/grub2/grub.cfg最後にサーバの再起動を行ってマウントオプションが反映されているか確認してください。
# reboot
マウントオプション確認方法
現在適用されているマウントオプションは、mountコマンドや/etc/mtabを確認することで確認することが出来ます。
mountコマンド実行結果
「/dev/mapper/centos-root on /」部分で「usrquota,prjquota,grpquota」が有効になっていることが確認できます。
# mount | grep quota /dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,prjquota,grpquota) /dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota) /dev/mapper/centos-home on /home type xfs (rw,relatime,attr2,inode64,usrquota,prjquota,grpquota)
/etc/mtab表示
上記同様「/dev/mapper/centos-root on /」部分で「usrquota,prjquota,grpquota」が有効になっていることが確認できます。
# cat /etc/mtab | grep quota /dev/mapper/centos-root / xfs rw,relatime,attr2,inode64,usrquota,prjquota,grpquota 0 0 /dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0 /dev/mapper/centos-home /home xfs rw,relatime,attr2,inode64,usrquota,prjquota,grpquota 0 0
●クォータ設定確認
xfsファイルシステムで、クォータの設定や情報表示等はxfs_quotaコマンドを使用します。
まず、現状のクォータ設定状況を下記コマンド確認してみてください。
# xfs_quota -x -c 'report -h' パーティション/homeパーティションのクォータ設定情報を確認してみます。
# xfs_quota -x -c 'report -h' /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 40K 0 0 00 [------] user1 12K 0 0 00 [------] user2 12K 0 0 00 [------] Group quota on /home (/dev/mapper/centos-home) Blocks Group ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 40K 0 0 00 [------] user1 12K 0 0 00 [------] user2 12K 0 0 00 [------] Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- #0 4.1G 0 0 00 [------]/homeパーティションにはマウントオプションとしてuquota、gquota、pquotaが設定されているので、ユーザ、グループ、プロジェクトそれぞれのクォータ設定について表示されました。
「'report -h'」の部分に「-u」「-g」「-p」を追加すると、それぞれ「ユーザ」「グループ」「プロジェクト」に関する情報だけを表示させることが出来ます。
- 'report -h -u' ユーザのクォータ情報を表示
- 'report -h -g' グループのクォータ情報を表示
- 'report -h -p' プロジェクトのクォータ情報を表示
●ユーザクォータ設定
ユーザごとにクォータで制限を設定する場合は下記のように設定を行います。
# xfs_quota -x -c 'limit bsoft=サイズ bhard=サイズ 設定ユーザ' パーティション
- bsoft ソフトリミット
- bhard ハードリミット
ソフトリミット
この値を超えた場合一定期間はサイズを超えたままにしておけますが、期限が過ぎた場合は、データの作成・追加を行うことが出来なくなります。
ハードリミット
この値を超えてデータの作成・追加が行うことが出来なくなります。
設定例
ユーザauthtestにソフトリミット100MB、ハードリミット200MBでクォータの設定を行います。
# xfs_quota -x -c 'limit bsoft=100m bhard=200m authtest' /home設定を確認してみるとauthtestユーザにクォータの制限が設定されていることが確認できます。
# xfs_quota -x -c 'report -h -u' /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 40K 100M 200M 00 [------] user1 12K 0 0 00 [------] user2 12K 0 0 00 [------]実際にauthtestユーザでファイルを作成して、クォータの動作確認を行います。
まずは、ソフトリミットを超える150MBのデータを作成します。
$ fallocate -l 150m 150m_data $ ls -lh 150m_data -rw-r--r-- 1 authtest authtest 150M Jan 4 11:28 150m_dataクォータの状況を確認すると、「Used」部分で「150.0M」使用している事と、ソフトリミットの制限期限が適用されていることが確認できました。
# xfs_quota -x -c 'report -h -u' /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 150.0M 100M 200M 00 [7 days] user1 12K 0 0 00 [------] user2 12K 0 0 00 [------]次に、ハードリミットを超えるデータを作成して動作確認を行います。
追加で100MBのデータを作成すると、150MB + 100MB でクォータで制限したハードリミットの200MBを超えるので、その際の動作について確認します。
$ fallocate -l 100m 100m_data fallocate: fallocate failed: ディスク使用量制限を超過しましたハードリミットを超えた場合は「failed」となり、データを作成することが出来ませんでしたので、クォータの制限が正常に動作していることが確認できました。
制限の解除
クォータの制限を解除する場合はサイズを「0」で設定します。
# xfs_quota -x -c 'limit bsoft=0m bhard=0m authtest' /homeクォータの状態を確認すると、「Soft」「Hard」ともに「0」となっていることが確認できます。
# xfs_quota -x -c 'report -h -u' /home User quota on /home (/dev/mapper/centos-home) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 150.0M 0 0 00 [------] user1 12K 0 0 00 [------] user2 12K 0 0 00 [------]
●グループクォータ設定
グループの範囲でクォータを適用させたい場合は、サイズを指定する際に「limit -g」と指定します。
# xfs_quota -x -c 'limit -g bsoft=サイズ bhard=サイズ 設定グループ' パーティション
設定例
事前に作成しておいたuserグループにクォータの設定を行います。
# xfs_quota -x -c 'limit -g bsoft=100m bhard=200m user1' /home設定を確認するとuserグループの「Soft」と「Hard」にサイズ制限が設定されていることが確認できました。
# xfs_quota -x -c 'report -h -g' /home Group quota on /home (/dev/mapper/centos-home) Blocks Group ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 150.0M 0 0 00 [------] user1 12K 100M 200M 00 [------] user2 12K 0 0 00 [------]userグループに所属しているユーザでソフトリミットの制限に該当するサイズのファイルを作成してみます。
$ fallocate -l 100m 100m_datauserグループの「Used」で100MB使用されていることと、ソフトリミットの制限期限が適用されていることが確認できました。
# xfs_quota -x -c 'report -h -g' /home Group quota on /home (/dev/mapper/centos-home) Blocks Group ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 104K 0 0 00 [------] authtest 150.0M 0 0 00 [------] user1 100.0M 100M 200M 00 [7 days] user2 12K 0 0 00 [------]次にハードリミットの動作確認を行うために、追加でサイズが150MBのファイルを作成しようとしましたが、ハードリミットの制限を超えてしまうためにファイルを作成することが出来きず、クォータの制限が正常に動作していることが確認できました。
$ fallocate -l 150m 150m_data fallocate: fallocate failed: デバイスに空き領域がありません
●プロジェクトクォータ設定
プロジェクトでクォータによる制限を行う場合、まずプロジェクトの設定を行う必要があります。
プロジェクトの設定は/etc/projectsと/etc/projidファイルで行います。
- /etc/projid:プロジェクト名とプロジェクトIDの紐づけ設定
- /etc/projects:プロジェクトIDとディレクトリの組み合わせ設定
/etc/projid
/etc/projidファイルにはプロジェクト名とプロジェクトIDの紐づけを下記のように記述します。
プロジェクト名:プロジェクトID下記の内容で実際に/etc/projidファイを作成していきます。
- プロジェクト名 test_project
- プロジェクトID 10
# vi /etc/projid設定内容は下記の通りとなります。
test_project:10
/etc/projects
/etc/projectsプロジェクトIDとディレクトリをの組み合わせを下記の書式で設定します。
プロジェクID:ディレクトリ下記内容で/etc/projectsファイルを作成していきます。
- プロジェクトID 10
- ディレクトリ /home/user1
- ディレクトリ /home/user2
# vi /etc/projects設定内容は下記の通りとなります。
10:/home/user1/ 10:/home/user2/
プロジェクト作成
/etc/projidと/etc/projectsファイルの作成が完了しましたら、次に下記コマンドでプロジェクトの登録を行います。
xfs_quota -x -c 'project -s プロジェクト名' パーティション先ほど作成した/etc/projidと/etc/projectsファイルをもとに「test_project」プロジェクトを作成します。
# xfs_quota -x -c 'project -s test_project' /home Setting up project test_project (path /home/user1/)... Setting up project test_project (path /home/user2/)... Processed 2 (/etc/projects and cmdline) paths for project test_project with recursion depth infinite (-1).
クォータ設定
プロジェクト範囲でクォータを適用させたい場合は、xfs_quotaコマンドでサイズを制限する際に「limit -p」と指定します。
# xfs_quota -x -c 'limit -p bsoft=サイズ bhard=サイズ プロジェクト名' パーティション
設定例
先ほど作成した「test_project」にクォータによるサイズ制限を設定していきます。
# xfs_quota -x -c 'limit -p bsoft=100m bhard=200m test_project' /homeクォータの設定情報を確認してみると、「test_project」に制限が掛かっている事が確認できました。
# xfs_quota -x -c 'report -h -p' /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- #0 4.2G 0 0 00 [------] test_project 32K 100M 200M 00 [------]
動作確認
プロジェクトとして登録した/home/user1ディレクトリで150MBのデータを作成してソフトリミットの制限に掛かるか確認してみます。
$ pwd /home/user1 $ fallocate -l 150m 150m_data $ ls -l 150m_data -rw-rw-r--. 1 user1 user1 157286400 11月 29 10:05 150m_data「Used」で作成したファイルサイズ150MBが認識されていて、「Warn/Grace」を確認するとソフトリミットの制限に掛かっていることが確認できます。
# xfs_quota -x -c 'report -h -p' /home Project quota on /home (/dev/mapper/centos-home) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- #0 4.2G 0 0 00 [------] test_project 150.0M 100M 200M 00 [6 days]追加で100MBのデータを/home/user2ディレクトリ状に作成して、ハードリミットの制限に掛かるかどうか確認してみます。
$ fallocate -l 100m 100m_data fallocate: fallocate failed: デバイスに空き領域がありません無事ハードリミットの制限に掛かり「デバイスに空き領域がありません」とエラーになり、データを作成することが出来ませんでした。
●warnquotaでクォータの警告メールを送信
CentOS 7でwarnquotaを使用して、クォータの制限を超えたユーザに警告をメール送信を行えるようにする手順です。警告をメールを送信するため、SMTPサーバが使用できることが前提条件となります。
インストール
warnquotaのインストールします。
# yum install quota-warnquota
設定
警告メール送信するために、下記のファイルを設定してきます。
- /etc/quotatab
- /etc/warnquota.conf
quotatab
warnquotaから送信される警告メールには、ディスク使用量に関するレポートが記述されるのですが、/etc/quotatabで設定を行わない場合、クォータの制限に該当した場所がデバイス名で表示されてしまいます。
例えば、/homeにクォータの制限を設定している場合、警告メールにはクォータの制限に掛かっているパーティション情報として/dev/mapper/centos-homeといったデバイス名が記述されますが、一般のユーザはどのパーティションの事なのか判別しづらいと思われます。
# df -h | grep /home /dev/mapper/centos-home 245G 4.3G 241G 2% /home実際の警告メールに表示されるレポートは下記のようになります。
/dev/mapper/centos-home ← この部分が分かりづらい
Block limits File limits
Filesystem used soft hard grace used soft hard grace
/dev/mapper/centos-home
+- 167M 100M 200M 5days 28 0 0
/etc/quotatabに、下記の書式でデバイス名に分かりやすい名前をマッピングすると、一般ユーザがどのパーティションについての警告なのかが分かりやすくなります。
デバイス名: マッピング名では、実際に設定を行っていきます。
# cp -p /etc/quotatab /etc/quotatab_yyyymmdd # vi /etc/quotatab
設定内容
/dev/mapper/centos-homeが「/home Directory」と表示されるように設定を行っています。
/dev/mapper/centos-home: /home Directory
表示例
/etc/quotatab編集後は、下記のようにどこのパーティションについてのことなのかが、わかりやすく表示されます。
/home Directory (/dev/mapper/centos-home) ← 何処のことかが分かりやすくなります
Block limits File limits
Filesystem used soft hard grace used soft hard grace
/dev/mapper/centos-home
+- 151M 100M 200M 6days 28 0 0
設定は必須ではありません
/etc/quotatabは設定を行わなくても警告メールを送信することが出来るのですが、特に手間も掛かりませんので設定しておいたほうがユーザにやさしいので設定を行っておいたほうが良いでしょう。
warnquota.conf
/etc/warnquota.confでは、警告メールのメッセージの内容を設定することが出来ます。
# cp -p /etc/warnquota.conf /etc/warnquota.conf_yyyymmdd # vi /etc/warnquota.conf
変更内容
とりあえず動作確認を行うために、送信元のメールアドレスを変更してみます。
設定項目は下記の項目で、root@example.comの部分を自サーバの情報に変更します。
- FROM
- CC_TO
- SUPPORT
- SIGNATURE
FAIL項目について
下記の設定がある場合は、頭に「#」をつけて「FAIL」無効化してください。
FAIL = "configure /etc/warnquota.conf before running warnquota" ↓ #FAIL = "configure /etc/warnquota.conf before running warnquota"
●warnquota実行
設定が完了したら実際にwarnquotaコマンドを実行しクォータの状態をチェックさせますが、「ユーザに設定されているクォータ」と「グループに設定されているクォータ」ではチェックの方法が異なりますので、それぞれの方法について説明します。
ユーザに設定されているクォータのチェック
「warnquota -s」コマンドを実行することで、ユーザクォータの状態をチェックしサイズ制限を超過しているユーザにメールを送信してくれます。
「-s」オプションは、警告メールに記述するディスク使用量のレポートの数字を分かりやすく表示させるためのオプションです。
# warnquota -sクォータのsoftlimit制限に該当しているユーザがいる場合、該当ユーザとrootユーザに下記のようなメールが送信されます。
差出人、CC、署名の表示がwarnquota.confで設定した通りになっていることも確認できます。

ちなみに、「-s」オプションを設定せずにwarnquotaを実行すると、ディスクの使用量が一目ではわかりづらい表記になってしまいます。
グループに設定されているクォータのチェック
グループに設定されているクォータをチェックしてメールを送信する場合は「-g」オプションを指定します。
# warnquota -g -sこの場合、メールの送信先は/etc/quotagrpadminsで設定されているユーザとなります。
/etc/quotagrpadminsの書式は中身を確認してみてもらうとすぐにわかりると思いますが、下記のようになっています。
グループ: ユーザ
設定例
userグループに設定されているクォータの制限を超過した場合、authtestユーザに警告メールを送信するには下記のように設定を行います。
# cp -p /etc/quotagrpadmins /etc/quotagrpadmins_yyyymmdd # vi /etc/quotagrpadmins user: authtest
●warnquota定期実行
手動で「warnquota」を実行して警告メールが正常に届くことが確認できましたら、「warnquota」を定期的に実行させるように設定を行っていきます。
warnquota自体には定期的に実行する機能が無いため、定期的に実行するためには「crontab」等に登録する必要があります。
本手順では/etc/crontabに登録して定期的に実行させることにします。
warnquotaを実行させる間隔は適宜決めてください。
# cp -p /etc/crontab /etc/crontab_yyyymmdd # vi /etc/crontab
設定例
1時間ごとにメールを送信
毎時「0」分に実行したい場合は下記のように設定します。
0 * * * * root warnquota -s
一日一回メールを送信
毎朝7:00に実行したい場合は下記のように設定します。
0 7 * * * root warnquota -s
●警告メッセージの編集
初期設定で用意されている警告メールは、件名や本文がすべて英文なのでユーザにあまりやさしくありませんが、/etc/warnquota.confで簡単に内容を編集してメッセージの内容や件名を日本語に設定することができます。
設定できる項目は色々とありますが、通常は下記の項目を編集するぐらいで大丈夫だと思います。
項目 | 説明 |
---|---|
FROM | 送信元メールアドレス |
SUBJECT | 件名 |
CC_TO | CCで送信するメールアドレス |
SUPPORT | サポート連絡先とするメールアドレス(「SIGNATURE」または「GROUP_SIGNATURE」の設定がない場合有効) |
PHONE | 電話番号(「SIGNATURE」または「GROUP_SIGNATURE」の設定がない場合有効) |
MESSAGE | ユーザクォータ制限用メール通知文 |
SIGNATURE | ユーザクォータ制限警告メールの最後に記述する文 |
GROUP_MESSAGE | グループクォータ制限用メール通知文 |
GROUP_SIGNATURE | グループクォータ制限警告メールの最後に記述する文 |
CHARSET | 文字コード指定 |
特殊文字
MESSAGESとGROUP_MESSAGEでメッセージを設定する際には下記の特殊文字を使用することが出来ます。
- %d:ドメイン名
- %h:ホスト名
- %i:ユーザ名
- %s:グループ名
- %%:%を表示
- |:改行
- \:メッセージを複数行に分割して記述する際に使用
設定例
設定例として下記の内容で設定を行ってみました。
# vi /etc/warnquota.conf FROM = "root@www.bigbang.mydns.jp" CC_TO = "root@www.bigbang.mydns.jp" SUBJECT = "データサイズ超過のお知らせ" MESSAGE = %h で /home/%i ディレクトリのデータサイズが規定値を超えていますので\ 必要のないデータを消去してください。||\ Block limits|used:現在のデータサイズ|soft:データサイズの制限値|\ hard:データサイズの最大値|grace:データ削除までの猶予期間| SUPPORT = root@www.bigbang.mydns.jp PHONE = (xxx)xxxx SIGNATURE = ご不明な点があれば root@www.bigbang.mydns.jp までご連絡ください。|\ 電話の場合は (xxx)xxxx までご連絡おねがいします。上記設定の場合、このようなメールになります。

※root宛メールを別アカウントに転送しています。
メッセージは自由に設定できるので、色々と試してみてください。