资源配额常用工具

ulimit

ulimit 工具可以 对用户可以使用的系统资源进行限制,如 打开的文件数量、CPU 时间、内存总量 等。

语法

ulimit -SHacdfltu [配额]

-H 硬指标,不能超过此值

-S 软指标,可以超过此值,超过会有警告信息

通常软指标比硬指标小,达到先警告再限制的效果

-a 后面不接任何选项与参数,可列出所有的限制额度

-c 限制每个内核文件的大小

程序出错时,系统将该程序在内存中的信息写成内核文件,便于除错。

-f 当前 shell 可以创建文件的容量限制

单位为 KBytes,一般为 2GB

-d 程序可使用的最大断裂内存(segment)容量;

-l 可用于锁定的内存量

-t 可使用的最大 CPU 时间 (秒)

-u 单一用户可以使用的最大进程数量。

范例

  • 查看当前普通用户身份的所有配额

ulimit -a

配额为 0 表示没限制

  • 限制用户仅能创建 10 MBytes 以下的文件

ulimit -f 10240

📕 恢复 ulimit 的设置只需 重新登陆

📕 如果普通用户使用 ulimit 设置了的文件大小配额,他后期只允许 继续降低 此配额,无权提升。

xfs_quota

语法

xfs_quota 用于生成配额的详细报告,设置各种配额参数。

xfs_quota -x -c "子命令" [挂载点]

-x 专家模式,用于接 -c 子命令

-c子命令

用户子命令

print 查看当前主机内的文件系统、对应的路径

df 与 df 功能相同,可以加上 -b(block)-i(inode)-h(加上单位)

report 列出目前的配额项目,可接 -ugr (user/group/project) 及 -bi 等参数

state 查看当前具体的配额设置

管理员子命令

disable 暂时禁用配额的限制。其实系统还是在计算配额,只是没有管制。

enable 启用配额限制,恢复正常管制。

off 针对文件系统完全关闭某类配额的限制。只有卸载、重新挂载才能再次启用配额。

remove 清除所有配额设置,必须在 off 状态下进行。

范例

暂时禁用配额

xfs_quota -x -c "disable -up" /home

重新恢复配额

xfs_quota -x -c "enable -up" /home

关闭文件系统项目配额限制

xfs_quota -x -c "off -p" /home

清除某类配额

要先使用 off 子命令来关闭该类配额,然后再用 remove 清除。

xfs_quota -x -c "off -u" /home 关闭用户配额限制

xfs_quota -x -c "remove -u" /home 清除用户配额设置

remove 会清除所有用户或所有项目的配额,无法针对特定用户或项目单独清除。

查看当前各文件系统的挂载参数

xfs_quota -x -c "print"

查看 /home 的磁盘使用率

xfs_quota -x -c "df -h" /home

查看目录中所有用户的配额

xfs_quota -x -c "report -ubih" /home

查看当前文件系统具体的配额设置

xfs_quota -x -c "state"

针对用户设置块配额

xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota1" /home

针对组设置块配额

xfs_quota -x -c "limit -g bsoft=950M bhard=1G myquotagrp" /home

设置宽限时间

xfs_quota -x -c "timer -ug -b 14days" /home

生成项目配置文件

echo "myquotaproject:11" >> /etc/projid

项目初始化

xfs_quota -x -c "project -s myquotaproject"

设置项目配额

xfs_quota -x -c "limit -p bsoft=450M bhard=500M myquotaproject" /home