在网络管理工作中,由于硬盘资源有限,通常需要在多用户服务中设置用户的linux磁盘配额。 对于免费或付费的公共多用户服务器来说,更需要此功能。 Quota是在RedHatlinux下实现linux磁盘配额的工具。 quota支持的挂载文件系统不是目录。
在quota上装载目录
显示/home目录的装载情况
复制代码就是:
[root@bogon ~]# df -h /home
filesystemsizeusedavailuse % mounted on
/dev/sda3 2.0G 35M 1.8G 2% /home
复制代码就是:
[root@bogon ~]# mount | grep home
/dev/sda3on/hometypeext4(rw ) )
用户和组的quota文件系统支持参数: usrquota,grpquota
复制代码就是:
[root@bogon ~]# mount -o remount,usrquota,grpquota /home
确保添加了usrquota、grpquota
复制代码就是:
[root@bogon ~]# mount | grep home
/dev/sda3on/hometypeext4(rw、usrquota、grpquota ) )。
编辑fstab文件以在系统启动时装载quota
复制代码就是:
[root@bogon ~]# vi /etc/fstab重新启动后生效
LABEL=/home /home ext4 defaults,usrquota,grpquota 1 2
重新挂载
复制代码就是:
[root@bogon ~]# umount /home
[root@bogon ~]# mount -a
[root@bogon ~]# mount | grep home
2. quota安装生成的usrquota和grpquota两个目录对整个系统中包含usrquota和grpquota参数的文件系统进行quota检查扫描
复制代码就是:
[root@bogon ~]# quotacheck -avug
-bash: command not found
复制代码就是:
[ root @ bogon~] # yuminstallquotaquota安装
复制代码就是:
[root@bogon ~]# quotacheck -avug
自动创建两个目录: usrquota和grpquota
复制代码就是:
[root@bogon ~]# ll -d /home/
- rw---- 1根根根8192 mar 611336058/home/a quota.group
- rw---- 1根根根9216 mar 611336058/home/a quota.user
在这种情况下,由于某些需要或某些情况,“不得不”运行此命令。
复制代码就是:
[ root @ bogon~] # quota check-avug-MF
参数-m[M]表示在“读写”模式下强制检查硬盘上的quota。 “正在写入”的数据可能会丢失。 请确保没有进程写入此分区。 建议在单用户模式下进行。 请参阅。
复制代码就是:
[根@ bogon~] # quotaon-auvg启动quota
/dev/sda3[/home ] : groupquotasturnedon
/dev/sda3[/home ] : userquotasturnedon
3. quota限制大小设置myquota1帐户加入quota限制此处将每个用户使用的磁盘大小固定为500米
复制代码就是:
[root@bogon ~]# useradd myquota1
[ root @ bogon~] # edquota-umyquota 1
filesystemblockssofthardinodessofthard
/dev/sda3 80 500000 600000 10 0 0
将myquota1用户的信息复制到myquota2
复制代码就是:
[ root @ bogon~] # edquota-pmy quota 1
-u myquota2复制代码代码如下:
[root@bogon ~]# edquota -g myquotagrp编辑myquotagrp组的总共使用大小
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 10000000 12000000 20 0 0
复制代码代码如下:
[root@bogon ~]# edquota -t修改宽限时间 当使用者文件超过大小时
复制代码代码如下:
[root@bogon ~]# quota -uvs myquota1 myquota2查询使用情况
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
Disk quotas for user myquota2 (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
复制代码代码如下:
[root@bogon ~]# quota -gvs myquotagrp查询myquotagrp组使用情况
复制代码代码如下:
edquota -g myquotagrp
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 1000M 1200M 20 0 0
复制代码代码如下:
[root@bogon ~]# repquota -auvs 查询所有用户使用情况
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 2 0 0
myquota1 -- 32 495M 595M 10 0 0
myquota2 -- 32 495M 595M 10 0 0
myquotagrp -- 64 1000M 1200M 20 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000
4. quota 测试利用 myquota1 的身份,建置一个 550MB 的大文件,并观察 quota 结果!
复制代码代码如下:
[root@bogon ~]# dd if=/dev/zero of=bigfile bs=1M count=550
[root@bogon ~]# repquota -auv
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
myquota1 +- 556840 500000 600000 13days 11 0 0
你可以发现 myquota1 的 grace 出现!
再创建另外一个大文件,让总容量超过 600M !
复制代码代码如下:
[root@bogon ~]# dd if=/dev/zero of=bigfile2 bs=1M count=600
du -sk
600000 . 文件大小已经查过了设置的大小 操作失败
复制代码代码如下:
[root@bogon ~]# warnquota 查看是否有警告信息
您如果要取消磁盘空间的限制,可用以下命令,请看:
复制代码代码如下:
[root@bogon ~]# quotaoff /home(取消磁盘空间限制。)
复制代码代码如下:
[root@bogon ~]# quotaon /home(现在启动磁盘空间限制。)
PS:quota命令的基础用法整理
语法
quota [ -u [ User ] ] [ -g [ Group ] ] [ -v | -q ]
描述
root 用户可以使用带有可选 User 参数的 -u 标志查看其它用户的限制。没有 root 用户权限的用户可以通过使用带有可选 Group 参数的 -g 标志来查看它们所属的组的限制。
注:
如果某个特定用户在对他有限额的文件系统上没有文件,该命令为那个用户显示 quota: none。当用户在文件系统中有文件时,显示用户的实际限额。
标志
-g 显示用户组的限额。
-u 显示用户限额。该标志是缺省选项。
-v 显示没有已分配存储器的文件系统上的限额。
-q 打印扼要消息,只包含关于使用超过限额的文件系统的信息。
注:
-q 标志优先于 -v 标志。
安全性
访问控制:该命令由 root 用户和 温柔的冰棍 组拥有。
特权控制:该程序是 setuid 为了允许非特权用户查看个人限额。
示例
(1). 要显示用户 keith 的限额,请输入:
复制代码代码如下:
quota
系统显示下列信息:
User quotas for user keith (uid 502):
Filesystem blocks quota limit grace Files quota limit grace
/u 20 55 60 20 60 65
(2). 要作为 root 用户显示用户 davec 的限额,请输入:
复制代码代码如下:
quota -u davec
系统显示下列信息:
User quotas for user davec (uid 2702):
Filesystem blocks quota limit grace files quota limit grace
/u 48 50 60 7 60 60
文件
复制代码代码如下:
quota.user指定用户限额。
复制代码代码如下:
quota.group指定组限额。
复制代码代码如下:
/etc/filesystems包含文件系统名称和位置。