侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Linux 中的Edquota命令

linux  /  管理员 发布于 7年前   368

edquota命令用于编辑指定用户或工作组磁盘配额。edquota预设会使用vi来编辑使用者或群组的quota设置。

语法

edquota(选项)(参数)

选项

-u:设置用户的quota,这是预设的参数;-g:设置群组的quota;-p<源用户名称>:将源用户的quota设置套用至其他用户或群组;-t:设置宽限期限。

参数

用户:指定要编辑磁盘配额限制的用户名或者工作组。

实例

配置系统的磁盘配额支持

首先,磁盘配额是区域性的,我们可以决定哪块分区进行磁盘配额,哪块分区不用(自然也就不用配置了)。一般而言,作为一台web虚拟主机服务器,/home和/www(或者类似的)是供用户存放资源的分区,所以可以对这两个分区进行磁盘配额。假定我们需要对/home分区实现用户级的限制,而对/www进行每个组的用户配额。

第一步:

vi /etc/fstab

找到对应于/home和/www的行,例如:

/dev/sda5 /home ext2 defaults 1 2/dev/sda7 /www ext2 defaults 1 2

在/home里实现用户级的磁盘配额,所以对sda5行的挂装选项域做如下修改:

/dev/sda5 /home ext2 defaults,usrquota 1 2

注意,是usrquota哦。类似的,我们可以如下修改/www行:

/dev/sda7 /www ext2 defaults,grpquota 1 2

如编辑根用户

改/etc/fstab文件中

LABEL=/ / ext2 defaults,usrquota,grpquota 1 1

说明:/etc/fstab文件的每一行由六个字段组成:

第一个字段:文件系统(分区)的注释(类似卷标);第二个字段:文件系统的装载点;第三个字段:文件系统类型(磁盘配额只能在ext2文件系统上实现);第四个字段:装载文件系统是使用的选项,如果只想实现基于用户的磁盘配额,就加入usrquota关键字,只想实现基于组的磁盘配额,就加入grpqouta关键字,如果两者都需要,就全写入,中间可以用逗号分隔。第五个字段:表明该文件系统(分区)是否为只读,如果是0就表示只读,1表示可以读写。第六个字段:表示系统启动执行fsck时检查的顺序。

注意:请特别注意这里的拼写,是usrquota和grpquota,不要写成userquota和groupquota。

进入单用户模式,用quotacheck生成.user或.group文件

quotacheck 你的目录

example:quotacheck / ; quotacheck /home

如果单用户模式报错的话umount你的设备/dev/hda*

再执行就ok了,重启动系统,如果一切正常的话,quota将开始正常工作。

设置用户和组配额的分配量

对磁盘配额的限制一般是从一个用户占用磁盘大小和所有文件的数量两个方面来进行的。在具体操作之前,我们先了解一下磁盘配额的两个基本概念:软限制和硬限制。

软限制:一个用户在文件系统可拥有的最大磁盘空间和最多文件数量,在某个宽限期内可以暂时超过这个限制。硬限制:一个用户可拥有的磁盘空间或文件的绝对数量,绝对不允许超过这个限制。

通过edquota直接编辑数据文件:

使用编辑配额命令edquota为用户配置定额,在重新启动系统之后,我们假设lanf是需要定额的系统帐户,可以使用如下命令来为用户分配磁盘配额:

edquota -u lanf

这个命令将启动默认文本编辑器(如vi或其他由$EDITOR 环境变量指定的编辑器),其内容如下所示:

Quotas for user lanf:/dev/sda5:blocks in use:0,limits(soft = 0,hard = 0)inodes in use:0,limits(soft = 0,hard = 0)

这表示lanf用户在/dev/sda5分区(该分区已经在usrquota的控制之下)中迄今使用了0个数据块(以K为单位),并且没有设限制(包括软限制soft和硬限制hard),同样,lanf在这个分区也没有任何文件和目录,并且也没有任何软硬限制。如果,我们想对用户进行磁盘容量的限制的话,只需要修改blocks行的limits部分就可以了,注意单位使用的是K。例如要为lanf分配100M磁盘的软限制,400M硬限制,可以使用如下的设置:

Quotas for user lanf:/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)inodes in use:0,limits(soft = 0,hard = 0)

同样的,要对文件目录的数量限制可以相应的修改inodes行。我们也可以同时对这两项都作出限制。只需要如下的修改Quotas for user lanf:

/dev/sda5:blocks in use:0,limits(soft = 102400,hard = 409800)inodes in use:0,limits(soft = 12800,hard = 51200)

这表示除了相应的容量的限制外,还对文件/目录的数量做了12800个的软限制和51200个的硬限制。在保存了新的配置后,该用户的磁盘使用就不能超过硬限制。如果用户试图超过这个限制,该操作将被取消,然后得到一个错误信息。但是,如果每个用户都要这么麻烦的设置的话,那这种重复的体力劳动实在有点令人不寒而栗,而且也太浪费时间了。幸好edquota还有个-p参数(prototype)可以对已有的用户设置进行拷贝。例如,我们想对Jack、Tom、Chen三个用户使用和lanf一样的限额配置,可以使用如下的命令:

edquota -p lanf -u Jack Tom Chen

这样一来,这三个用户就被赋予了和lanf一样的磁盘配额。

对组的配额,除了edquota命令中对应-u选项的改为-g选项,例如下面对webterm1组的操作:

edquota -g webterm1

实际上,以上的限制只是对用户设定的硬限制在起作用。如果需要使软限制也起作用的话,还需要对用户的软限制设定宽限期,缺省的软限制的宽限期是无穷,这可以使用edquota命令的-t选项来实现。运行下面的命令:

edquota -t

edquota将打开缺省编辑器显示如下内容:

time units may be:days,hours,minutes,or secondsGrace period before enforcing soft limits for users:/dev/sda5:block grace period:0 days,file grace period:0 days

可以使用天、小时、分、秒为单位来设定宽限期。例如,在下面这个例子中,磁盘空间限制的宽限期为两天,而文件数量限制的宽限期只有6个小时。

Time units may be:days,hours,minutes,or secondsGrace period before enforcing soft limits for users:/dev/sda5:block grace period:2 days,file grace period:6 hours

通过setquota工具加入:

比如加入用户bye2000的磁盘配额,执行以下命令:

setquota Cu / 2000 2500 100 110 bye2000

以下是setquota命令用法的简单描述:

setquota [ -u|-g ] 装载点 软块数 硬块数 软文件数 硬文件数 用户名/组名

查看用户磁盘使用情况

要查明某一个用户使用了多少磁盘空间,例如lanf,可以使用如下的命令:

quota -u lanf

显示:

Disk quotas for user lanf(uid 503):Filesystem blocks quota limit grace file quota limit grace/dev/sda5 3 102400 409800 1 12800 51200

同样,可以使用quota -g groupname命令来参看某个组的磁盘使用情况。

注意:

如果该用户没有配置磁盘限额的话,输出显示Disk quotas for user hujm (uid 503): none如果不带任何参数运行quota的话,查看的是你自己的配额使用情况。


  • 上一条:
    Linux下文件剪切的shell脚本实现代码
    下一条:
    Linux shell下30个有趣的命令和提示(推荐)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客