Linux磁盘配额的设置与检测(1)(4)
一次检查一个用户的配额很没有效率,所以您会想要使用 repquota 命令生成配额报告。清单 16 显示了如何查看 /quotatest/ext4/ 上所有用户和组的配额。
清单 16. 生成配额报告
[root@echidna ~]# repquota -ug /quotatest/ext4/ *** Report for user quotas on device /dev/sda7 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 24 0 0 2 0 0 ian +- 11260 10240 11264 6days 3 50 55 gretchen -- 2080 10240 11264 44 50 55 tom -+ 660 10240 11264 55 50 55 6days development -- 4 0 0 1 0 0 *** Report for group quotas on device /dev/sda7 Block grace time: 7days; Inode grace time: 7days Block limits File limits Group used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 24 0 0 2 0 0 development -+ 14004 25600 28160 103 100 110 7days
请注意,清单 16 中用户 ian、tom 和组 development 的加号,它表明现在每个都超出了配额。用户 ian 有过多的数据。用户 tom 有过多的文件。组 development 也有过多文件。
正如使用其他配额命令一样,-a 选项生成启用配额的已安装的文件系统的报告。-v 选项生成一个更详细的输出。-n 选项生成数字用户的编号,而不是将用户编号解析为名称。这个会对庞大的报告提供一个性能提升,但对读者并没有那么有用。
XFS 文件系统上的项目配额
XFS 配额系统还支持项目配额,它是组配额的替换。您不能在 XFS 文件系统上同时使用组和项目配额。项目配额要通过在 /etc/fstab 中添加 prjquota(或者 pquota)启用。
项目配额使用数字 id 的概念和更具描述性的项目名称。文件 /etc/projects 用于映射数字项目识别符到目录树,而文件 /etc/projid 映射数字项目识别符到项目名称。可以不使用 /etc 中的这两个文件进行操作,但是这样较为不方便。查看映射页面获取详细信息。
要设置项目配额,您必须在专家模式(-x 选项)使用 xfs_quota 命令。首先您必须使用 project 子命令和 -s 选项,通过标记所有受影响的索引节点作为项目一部分来设置项目配额。然后使用 limit 子命令来设置硬件或者软件限制。清单 17 显示了如何在 /quotatest/xfs/proj-dir1 下设置一个 15MB 项目硬件限制的项目树。我们还将设置一个没有限制的并行 /quotatest/xfs/proj-dir2 进行说明。
清单 17. 设置 xfs 项目配额
[root@echidna ~]# mkdir -m ag+w /quotatest/xfs/proj-dir{1,2} [root@echidna ~]# chown development:development /quotatest/xfs/proj-dir* [root@echidna ~]# echo "50:/quotatest/xfs/proj-dir1" >> /etc/projects [root@echidna ~]# echo "dev-projects:50" >> /etc/projid [root@echidna ~]# xfs_quota -x xfs_quota> path Filesystem Pathname 000 /quotatest/xfs /dev/sda8 (uquota, pquota) [001] /quotatest/xfs/proj-dir1 /dev/sda8 (project 50, dev-projects) xfs_quota> project -s dev-projects Setting up project dev-projects (path /quotatest/xfs/proj-dir1)... Processed 1 (/etc/projects and cmdline) paths for project dev-projects with recursion depth infinite (-1). xfs_quota> limit -p bhard=15m dev-projects xfs_quota> q
我们将通过使用户 chris 创建几个文件来说明项目配额。用户 chris 不是 development 组的成员,也没有为自己和组设置配额。清单 18 显示了 chris 不能在 /quotatest/xfs/proj-dir1 创建大于 15MB 的数据,但在 /quotatest/xfs/proj-dir2 中没有限制。
清单 18. 行动中的项目配额
[chris@echidna xfs]$ id chris uid=1010(chris) gid=1010(chris) groups=1010(chris) [chris@echidna xfs]$ dd if=/dev/zero of=proj-dir1/chris1 bs=1024 count=10000 10000+0 records in 10000+0 records out 10240000 bytes (10 MB) copied, 0.0379557 s, 270 MB/s [chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir1/chris2 cp: writing `proj-dir1/chris2': No space left on device [chris@echidna xfs]$ ls -l proj-dir1 total 15356 -rw-rw-r--. 1 chris chris 10240000 Nov 23 13:16 chris1 -rw-rw-r--. 1 chris chris 5484544 Nov 23 13:16 chris2 [chris@echidna xfs]$ # Note: second copy was truncated at hard limit [chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris1 [chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris2 [chris@echidna xfs]$ cp proj-dir1/chris1 proj-dir2/chris3 [chris@echidna xfs]$ du -sh * 15M proj-dir1 30M proj-dir2
用户警告
warnquota 命令用于对超出配额的用户发出邮件警告。当组超出配额时,就会发邮件给 /etc/quotagrpadmins 中组的指定用户。邮件格式由文件 /etc/warnquota.conf 控制。文件 /etc/quotatab 用于映射名称,例如 /dev/sda7 映射为用户更容易理解的描述,如 “Shared EXT3 filesystem”。通常 warnquota 作为一个 cron 工作定期运行。查看用户手册页面,了解更多 cron 和 warnquota 的信息。
Linux 上的配额介绍就到此为止。
评论暂时关闭