Linux命令-quotaon(开启磁盘配额)

发布时间:2026/7/2 7:46:12

Linux命令-quotaon(开启磁盘配额) Linux命令-quotaon开启磁盘配额快速参考命令语法常用选项实战示例1. 基础启停2. 完整的配额启用流程3. 故障排查4. 启动时自动启用5. 安全配置6. 不同文件系统的配额开启发行版差异完整配额启用检查清单总结快速参考quotaon用于启用文件系统上的磁盘配额功能。它读取配额数据库文件aquota.user和aquota.group通知内核开始追踪和限制每个用户/组的磁盘空间和文件数量使用。quotaon是配额管理系统中的开关——在此之前无论配额配置了多少限制实际都不会生效。quotaon是配额系统从纸面限制到实际执行的关键一步。很多人配置了/etc/fstab、创建了配额文件、设置了限制却忘了最后一步quotaon导致配额形同虚设。命令语法quotaon [选项] [文件系统...]常用选项选项功能-a开启所有挂载文件系统的配额-u只开启用户配额默认同时开启用户和组-g只开启组配额-v详细输出-p打印当前配额状态-f强制开启即使配额文件有错误-x跳过 NFS 文件系统实战示例1. 基础启停# 检查当前状态$sudoquotaon-pgroupquotaon /(/dev/sda1)is off userquotaon /(/dev/sda1)is off# 开启单个文件系统$sudoquotaon-v/ /dev/sda1[/]: group quotas turned on /dev/sda1[/]: user quotas turned on# 再次确认$sudoquotaon-pgroupquotaon /(/dev/sda1)is on userquotaon /(/dev/sda1)is on# 开启所有文件系统$sudoquotaon-a-v/dev/sda1[/]: group quotas turned on /dev/sda1[/]: user quotas turned on /dev/sdb1[/data]: user quotas turned on# 只开启用户配额$sudoquotaon-u-v/# 只开启组配额$sudoquotaon-g-v/# 安静模式sudo quotaon -a无输出即成功$sudoquotaon-a2. 完整的配额启用流程# 从零开始启用配额完整的 5 步操作# 步骤1编辑 /etc/fstab添加配额选项$cat/etc/fstab# ... 在 defaults 后添加 ,usrquota,grpquotaUUIDabc123 / ext4 defaults,usrquota,grpquota01# 步骤2重新挂载文件系统$sudomount-oremount /# 验证挂载选项已生效$mount|grep / /dev/sda1 on /typeext4(rw,relatime,usrquota,grpquota)# 步骤3创建配额数据库$sudoquotacheck-cugv/ quotacheck: Scanning /dev/sda1[/]donequotacheck: Checked15342directories and128567files# 验证配额文件已创建$ls-l/aquota.* -rw-------1root root16384Jun1410:00 /aquota.group -rw-------1root root16384Jun1410:00 /aquota.user# 步骤4设置配额限制$sudosetquota-ualice800000100000015002000/dev/sda1# 软限制 800MB硬限制 1000MB文件软限制 1500文件硬限制 2000# 步骤5启用配额$sudoquotaon-v/ /dev/sda1[/]: group quotas turned on /dev/sda1[/]: user quotas turned on# 最终验证$sudoquota-salice Disk quotasforuser alice(uid1000): Filesystem spacequotalimit grace filesquotalimit grace /dev/sda1 512M 800M 1000M125015002000# 确认配额状态$sudoquotaon-pgroupquotaon /(/dev/sda1)is on userquotaon /(/dev/sda1)is on3. 故障排查# 问题1quotaon 报 No quota format detected$sudoquotaon-v/ quotaon: using //aquota.group on /dev/sda1[/]: Noquotaformatdetected# 原因配额数据库文件不存在或格式错误# 解决重新创建配额文件$sudoquotaoff-a2/dev/null $sudoquotacheck-cugv/ $sudoquotaon-a# 问题2quotaon 报 Permission denied$ quotaon / quotaon: Permission denied# 需要 root 权限$sudoquotaon /# 问题3开启后 quota 命令仍显示无限制$quota-salice Disk quotasforuser alice(uid1000): none# 可能原因文件系统的配额选项未在 /etc/fstab 中设置# 检查$mount|grepquota$cat/etc/fstab|grepquota# 问题4重启后配额自动关闭# 确保 /etc/fstab 中有配额选项# 并在系统启动时自动运行 quotaon# 对于使用 systemd 的系统启用 quotaon.service$sudosystemctlenablequotaon $sudosystemctl start quotaon4. 启动时自动启用# 方法1使用 systemd推荐$sudosystemctlenablequotaon.service $sudosystemctl start quotaon.service $sudosystemctl status quotaon.service# 方法2使用 /etc/rc.local传统方式$cat/etc/rc.localEOF #!/bin/sh /sbin/quotaon -a EOF$sudochmodx /etc/rc.local# 方法3在 /etc/fstab 中添加选项某些系统# 在 fstab 的第 5 个字段dump和第 6 个字段fsck之间# 添加 quota 选项后mount 时会自动启用取决于发行版# 方法4使用 cron reboot$echoreboot root /sbin/quotaon -a|sudotee/etc/cron.d/quota-boot5. 安全配置# 确保配额文件的安全权限$sudochownroot:root /aquota.user /aquota.group $sudochmod600/aquota.user /aquota.group# 验证$stat/aquota.user File: /aquota.user Size:16384Blocks:32IO Block:4096regularfileDevice:259,2Inode:131072Links:1Access:(0600/-rw-------)Uid:(0/ root)Gid:(0/ root)# 0600 权限只有 root 可以读写# 监控配额状态$cat/usr/local/bin/quota_health.shSCRIPT #!/bin/bash for fs in $(mount | grep -E (usrquota|uquota|grpquota|gquota) | awk {print $3}); do if ! quotaon -p $fs 2/dev/null | grep -q is on; then echo WARNING: Quota is OFF on $fs at $(date) | \ systemd-cat -t quota-monitor -p warning fi done SCRIPT# 定期健康检查# */10 * * * * /usr/local/bin/quota_health.sh6. 不同文件系统的配额开启# ext2/ext3/ext4$sudomount-oremount,usrquota,grpquota / $sudoquotaon-v/# XFS# XFS 的配额在挂载时自动激活不需要 quotaon$sudomount-ouquota,gquota /dev/sdb1 /data# 验证$sudoxfs_quota-x-cstate/data# Btrfs$sudobtrfsquotaenable/mnt/btrfs $sudobtrfs qgroup show /mnt/btrfs# ZFS$sudozfssetquota10G tank/home/alice# ZFS 配额是数据集属性不需要 quotaon发行版差异发行版quotaon 路径systemd 服务Debian/Ubuntu/usr/sbin/quotaonquotaon.serviceRHEL/CentOS/Fedora/usr/sbin/quotaonquotaon.serviceArch Linux/usr/bin/quotaonquotaon.serviceAlpine Linux/usr/sbin/quotaon需手动配置systemd 系统RHEL/CentOS 7、Debian 8、Ubuntu 16.04 都使用 systemd可以通过systemctl enable quotaon设置开机自启。完整配额启用检查清单检查项命令1. fstab 有配额选项grep quota /etc/fstab2. 挂载选项生效mount | grep quota3. 配额文件存在ls -l /aquota.*4. 配额权限正确stat -c %a /aquota.user5. 限制已设置sudo repquota / | head6. 配额已开启sudo quotaon -p7. 验证限制生效quota -s总结quotaon是整个配额管理流程的最后一把钥匙quotaon-a# 开启所有配额quotaon-v/# 开启指定文件系统详细输出quotaon-p# 仅查看状态quotaon-f/# 强制开启忽略错误配额启用的完整路径fstab 配置 → mount remount → quotacheck 创建文件 → setquota 设置限制 → quotaon 开启最常见的新手错误完成了/etc/fstab修改、quotacheck、setquota配置却忘了执行quotaon。配额系统不开启一切配置都是纸面上的。

相关新闻