Quota
在Linux里,quota就是对硬盘进行限制。适当的分配空间给使用者。Quota常用在:
WWW server 例如:每个人的网页空间的容量限制!
mail server 例如:每个人的邮件空间限制。
file server 例如:每个人最大的可用网络硬盘空间。
Quota 的使用限制
仅针对整个partition:如果/dev/hda5 是挂载在 /home 下,那么/home 下的所有目录都会受到限制!此外,核心还必须支持quota才行,目前linux系统基本都是支持的。 最后quota只对一般用户有效,对root无效。
Quota 的记录文件:aquota.user, aquota.group
quota 对硬盘配额的限制项目:
1,soft:这是最低限制容量的意思,使用者在宽限期间之内,他的容量可以超过soft ,但必需要宽限时间之内将磁盘容量降低到soft的容量限制之下!
2,hard:这是绝对不能超过的容量!hard limit会比 soft limit为高。好比给与使用者的hard是30M,soft是25M,那么当用户占有空间为25M的时候,系统就会提醒用户,但是用户可以一直使用到30M,只要在宽限时间内降低到25M以内就没事了。
3,宽限时间:也就是当使用者使用的空间超过了soft limit,就会激活这个宽限时间。在这个宽限时间内, 就必需要请使用者将使用的磁盘容量降低到soft limit 之下。否则在宽限时间内如果还没降低使用空间,就会做出进一步的动作。
基本的 quota 指令:
基本上分为两种,一种是查询功能 ( quota, quotacheck, quotastats, warnquota, repquota ),另一种则是编辑 quota 的内容 ( edquota, setquota ) !
/etc/mtab
当我们使用 quota 的时候,系统会去搜寻具有 quota 参数的 partition,所以要使用 quota 的功能时,filesystem 必须要已经支持quota 的旗标才行。一般是以编辑 /etc/fstab 后,再重新挂载filesystem的方法来让系统的 filesystem 支持 quota 的!
quota
[root@linux ~]# quota [-uvsl] [username]
[root@linux ~]# quota [-gvsl] [groupname]
参数:
-u :后面可以接 username ,表示显示出该使用者的quota 限制值。若不接 username,表示显示出执行者的quota 限制值。
-g :后面可接 groupname ,表示显示出该组的 quota 限制值。
-v :显示每个 filesystem的quota值;
-s :可选择以inode或磁盘容量的限制值来显示;
-l :仅显示出目前本机上面的filesystem的quota值。
quotacheck
[root@linux ~]# quotacheck [-avug] [/mount_point]
参数如下:
-a :扫瞄所有在 /etc/mtab 内,含有 quota的filesystem,加上此参数后, /mount_point 可不必写,因为扫瞄所有的filesystem!
-u :针对使用者扫瞄文件与目录的使用情况,会建立 aquota.user
-g :针对群组扫瞄文件与目录的使用情况,会建立 aquota.group
-v :显示扫瞄过程的信息;
-M :强制进行 quotacheck 的扫瞄。
edquota
[root@linux ~]# edquota [-u username] [-g groupname]
[root@linux ~]# edquota -t
[root@linux ~]# edquota -p username_demo -u username
参数:
-u :后面接账号名称。可以进入 quota 的编辑画面 (vi) 去设定 username 的限制值;
-g :后面接群组名称。可以进入 quota 的编辑画面 (vi) 去设定 groupname 的限制值;
-t :可以修改宽限时间 (就是超过 quota 的 soft limit 值后,还能使用硬盘的宽限期限)
-p :复制范本。那个 username_demo 为已经存在并且已设定好 quota 的使用者,意义为将 username_demo 这个人的 quota 限制值复制给 username !
filesystem:代表这个 quota 是针对哪一个partition 的意思。
blocks:这个是目前使用者在这个filesystem,所耗掉的磁盘容量!单位是Kbytes!这个信息是 quota 程序自己计算出来的,所以不要修改他!
soft 与 hard :当soft与hard数值为 0 的时候,表示没有限制!
inodes:是目前使用掉 inode 的状态,也是 quota 自己计算出来而得到的。最好别修改。
quotaon
[root@linux ~]# quotaon [-avug]
[root@linux ~]# quotaon [-vug] [/mount_point]
参数:
-u :针对使用者启动 quota (aquota.user)
-g :针对群组启动 quota (aquota.group)
-v :显示启动过程的相关讯息;
-a :根据 /etc/mtab 内的 filesystem 设定启动有关的 quota ,若不加 -a 的话,则后面就需要加上特定的那个 filesystem !
quotaoff
[root@linux ~]# quotaoff [-a]
[root@linux ~]# quotaoff [-ug] [/mount_point]
参数:
-a :全部的 filesystem 的 quota 都关闭 (根据 /etc/mtab)
-u :仅针对后面接的那个 /mount_point 关闭 user quota
-g :仅针对后面接的那个 /mount_point 关闭 group quota
实战Quota
我们可以限制某一群组所能使用的最大磁盘配额,而且可以再限制某一使用者的最大磁盘配额 ,好比做一个收费的应用,vip可以得到空间更大一些。另外,以 Link 的方式,来使邮件可以作为限制的配额 (更改 /var/spool/mail 这个路径),不2,需要重新再规划一个硬盘!直接使用 Link 的方式指向 /home (或者其它已经做好的 quota 磁盘)就可以!这通常是用在原本规划不好,但是却又不想要更动原有主机架构的情况中!
实验要求:Linux 主机里面主要针对 quser1 及 quser2 两个使用者来进行磁盘配额, 且这两个使用者都是挂在 qgroup 组里面的。每个使用者总共有 50MB 的磁盘空间 (不考虑 inode) 限制!并且 soft limit 为 45 MB;而宽限时间设定为 1 天, 但是在一天之内必须要将多余的文件删除掉,否则将无法使用剩下的空间 ;gquota 这个组考虑最大限额,所以设定为 90 MB!(注意,这样设置的好处是富有弹性,好比现在的邮件服务,那么多用户,承诺给用户每人最大空间为数GB,然而人们不可能每人都会使用那么大的空间,所以邮件服务的总空间,实际上肯定不是注册客户数乘以数GB,否则这样得多大啊。)
[root@linux ~]# groupadd qgroup
[root@linux ~]# useradd -m -g qgroup quser1
[root@linux ~]# useradd -m -g qgroup quser2
[root@linux ~]# passwd quser1
[root@linux ~]# passwd quser2
[root@linux ~]# df ===> 自己找一个合适的分区来做实验,这里用/disk2
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 5952252 3193292 2451720 57% /
/dev/hdb1 28267608 77904 26730604 1% /disk2
/dev/hda5 9492644 227252 8775412 3% /disk1
[root@linux ~]# vi /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/disk1 /disk1 ext3 defaults 1 2
LABEL=/disk2 /disk2 ext3 defaults,usrquota,grpquota 1 2
/dev/hda3 swap swap defaults 0 0
注意,多了usrquota,grpquota,在『 defaults,usrquota,grpquota 』之间都没有空格,务必正确书写。这样就算加入了 quota 的磁盘格式了!不过,由于真正的 quota 在读取的时候是读取 /etc/mtab 这个文件的,而该文件需要重新开机之后才能够以/etc/fstab 的新数据进行改写!所以这个时候可以选择:重新开机 (reboot) ;
重新 remount filesystem 来驱动设定值!
[root@linux ~]# umount /dev/hdb1
[root@linux ~]# mount -a
[root@linux ~]# grep '/disk2' /etc/mtab
/dev/hdb1 /disk2 ext3 rw,usrquota,grpquota 0 0
事实上,也可以利用 mount 的 remount 功能!
[root@linux ~]# mount -o remount /disk2
这样就已经成功的将 filesystem 的 quota 功能加入
扫瞄磁盘的使用者使用状况,并产生重要的 aquota.group 与 aquota.user:
[root@linux ~]# quotacheck -avug
quotacheck: Scanning /dev/hdb1 [/disk2] done
quotacheck: Checked 3 directories and 4 files
[root@linux ~]# ll /disk2
-rw------- 1 root root 6144 Sep 6 11:44 aquota.group
-rw------- 1 root root 6144 Sep 6 11:44 aquota.user
使用 quotacheck 就可以轻易的将所需要的数据给他输出了!但奇怪的是,在某些 Linux 版本中,不能够以 aquota.user(group) 来启动quota ,可能是因为旧版 quota 的关系, 所以就另外做了一个 link 文件按来欺骗 quota,这个动作非必要。(主要是学习这个思维很重要)
[root@linux ~]# cd /disk2
[root@linux ~]# ln -s aquota.user quota.user
[root@linux ~]# ln -s aquota.group quota.group
启动 quota 的限额:
[root@linux ~]# quotaon -avug
/dev/hdb1 [/disk2]: group quotas turned on
/dev/hdb1 [/disk2]: user quotas turned on ===> 看到turned on,才是真的成功!
编辑使用者的可使用空间:
[root@linux ~]# edquota -u quser1
Disk quotas for user quser1 (uid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 45000 50000 0 0 0
[root@linux ~]# edquota -p quser1 quser2 ===> 直接复制给quser2
接下来要来设定宽限时间,还是使用 edquota !
[root@linux ~]# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb1 1days 7days
使用 quota -v 来查询:
[root@linux ~]# quota -vu quser1 quser2
Disk quotas for user quser1 (uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
Disk quotas for user quser2 (uid 503):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 45000 50000 0 0 0
注意,由于使用者尚未超过45 MB,所以 grace ( 宽限时间 ) 就不会出现!
编辑群组可使用的空间:
[root@linux ~]# edquota -g qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 80000 90000 0 0 0
[root@linux ~]# quota -vg qgroup
Disk quotas for group qgroup (gid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb1 0 80000 90000 0 0 0
设定开机时启动 quota:
因为FC4 与Red Hat 系列的开机 script (/etc/rc.d/rc.sysinit) 已经将 quota 的侦测写入在里头,因此,在预设的情况下, quota 是会主动的被启动的。 不过,如果想要手动的强制 quota 在开机启动一遍,那么可以使用 vi 去编辑 /etc/rc.d/rc.local ,在里面加入一行 (直接加在最后一行即可):
[root@linux ~]# vi /etc/rc.d/rc.local
/sbin/quotaon -avug
不更动既有系统的quota实例
如果要设定一个对外开启的邮件主机的时候,所以使用 quota 进行对用户限制确实是一个好建议!由于 quota 只能针对整个 partition 进行整体的磁盘配额,无法针对某个目录进行磁盘配额!
很多时候当初进行 Linux 安装时,如果忘记将 /home 独立成一个 partition 时,也忘记将 /var/spool/mail 这个 mailbox 放置的目录独立出来!在上面的那个实作当中,partition仅有/, /disk1, /disk2,那我的所有使用者都在 /home 里面, 邮件在 /var/spool/mail 底下,怎么办?只要:
1, 将 /home 这整个目录搬移到 /disk2 底下;
2, 利用 ln -s /disk2/home /home 来建立连结数据;
3, 将 /var/spool/mail 整个搬移到 /disk2 底下;
4, 利用 ln -s /disk2/mail /var/spool/mail 来建立连结数据。
这样做的好处就是不论使用者的邮件目录还是家目录,加起来的容量就不能超过限制容量!当然也可以依据不同的使用者与群组来设定 quota 然后同样的以上面的方式来进行 link 的动作!
发表评论
-
glibc版本信息及安装
2017-12-28 15:42 1495在高版本的glibc上编译的不能到底版本的glibc ... -
论GNU、Linux和GNU/Linux之间的关系
2017-12-28 15:17 396相信很多人看到了这个标题就会产生疑问,这篇文章到底要讲 ... -
linux的软链接与硬链接
2017-11-03 16:25 347Linux链接分两种,一 ... -
使用mailx发送邮件
2013-04-12 10:57 1002mailx是UNIX系统上用来处理邮件的工具,使用它可以发送, ... -
查看linux系统信息
2013-02-25 18:58 954Linux系统信息查看命令大全 系统 # uname -a ... -
ssh 常用用法小结
2013-02-25 18:21 1897ssh 常用用法小结 在 ... -
在windows中使用UltraEdit编辑linux下文件
2013-01-18 13:21 5982在windows中使用UltraEdit编辑linux下文件 ... -
beyondCompare 工具比较linux下文件夹
2013-01-18 11:56 1281在windows环境下,用beyondCompare 工 ... -
Linux 目录结构以及作用详解
2013-01-06 14:58 8011、什么是文件系统 当 ... -
Linux通过脚本实现远程自动备份
2013-01-05 16:43 835考虑到在本机上备份数据,一旦该机器硬盘出现故障,数 ... -
Linux的僵尸进程及其解决方法
2013-01-05 16:36 7721. 产生原因: ... -
(linux) find command
2013-01-04 13:22 1345find命令的主要功能是在 ... -
linux之cp/scp命令+scp命令详解
2012-12-25 16:34 981名称:cp使用权限:所有使用者使用方式:cp [options ... -
过滤小结(Linux)
2012-12-20 16:32 0============================ $ ... -
十项Linux操作系统安全管理技巧经验总结
2012-12-18 16:23 664由于Linux操作系统是一个开放源代码的免费操作系统,因此 ... -
linux中ssh 连接缓慢解决方法
2012-12-13 13:30 1288重新安装机器的情况下 ... -
Redhat linux 命令行设置IP
2012-12-11 14:27 1297redhat linux版本命令行设置IP ifcon ... -
Linux软件包安装方式小结
2012-12-11 10:45 834Linux操作系统软件包安 ... -
Linux压缩解压的相关命令总结
2012-12-11 10:32 824Linux下常用压缩格 ... -
Linux下Python的安装方法
2012-11-29 18:41 761Linux下Python的安装方法: 1.下载源代码 ht ...
相关推荐
磁盘配额(quota)是 Linux 系统中的一种重要功能,它可以对用户和组的磁盘使用进行限制和管理,从而防止某个用户或组占用过多的磁盘空间,影响其他用户或组的使用。 磁盘配额的作用可以简单地理解为对磁盘的使用...
### Linux下磁盘配额(quota)应用与实战详解 #### 一、磁盘配额概念及作用 磁盘配额是一种重要的资源管理工具,它主要用于控制用户或用户组在文件系统上的磁盘使用量。在多人共享同一系统的情况下,比如在Linux...
在 Linux 系统中,需要安装 quota 包以便使用磁盘配额管理。使用 rpm 命令可以检查是否已经安装了 quota 包。 二、修改 /etc/fstab 文件 要启用磁盘配额管理,需要修改 /etc/fstab 文件,以便在需要配额的文件系统...
为了避免这种情况发生,Linux提供了磁盘配额(quota)功能,通过它我们可以有效地管理和限制用户或用户组对磁盘空间的使用。 ##### 1.2 配置须知 - **根目录限制**:ext文件系统的根目录(root)无法设置磁盘配额,并且...
Linux磁盘配额管理系统是一种用于控制用户在文件系统中占用磁盘空间和文件数量的工具。在多用户环境中,特别是服务器系统,为了合理分配有限的硬盘资源,避免个别用户过度消耗存储空间,管理员通常会使用磁盘配额...
【基于Linux系统利用Quota功能实现FTP中用户的磁盘配额】 随着现代教育技术的快速发展和教学改革的需求,FTP(文件传输协议)服务因其便捷、快速、安全的文件传输特性得到了广泛应用,尤其对于无纸化办公自动化系统...
### 磁盘配额在Linux系统中的应用与配置 #### 一、磁盘配额的概念及功能 磁盘配额是一种系统级别的功能,它允许系统管理员为用户或用户组设置磁盘空间的使用上限。这项功能对于确保共享存储资源合理分配、避免单一...
Linux中的quota功能是一种用于限制用户或用户组在特定文件系统中使用磁盘空间和文件数量的工具。在Linux系统管理中,特别是在多用户环境中,它非常有用,可以防止个别用户过度消耗系统资源,确保资源的公平分配。...
在Linux操作系统中,文件系统是核心组成部分之一,它负责管理和组织磁盘上的数据,使得用户可以方便地存储、检索和管理文件。本课程主要讲解Linux文件系统和磁盘管理的相关知识,包括文件系统资源虚拟化、不同类型的...
在Linux系统管理中,RAID(冗余磁盘阵列)技术和Quota(磁盘配额)是两个非常重要的概念,它们对于数据安全和资源管理起着关键作用。在本次的"Linux AS5的RAID5 + Quota录像"中,我们将深入探讨这两个技术及其应用。...
quota命令的作用是显示磁盘空间配额。at命令的作用是执行定时任务。lp命令的作用是打印文件。adduser命令的作用是添加用户。groupadd命令的作用是添加用户组。kill命令的作用是终止进程。crontab命令的作用是执行...
本篇文章将详细介绍Linux系统中最常用的60个命令,这些命令被分为六个类别:安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令以及其他命令。通过学习这些命令,您可以更好地理解和...
下面将详细介绍Linux Quota的主要概念、工作原理及其在实际操作中的应用。 **Linux Quota工作原理** Linux Quota通过在文件系统级别设定限制,监控和控制用户或组的磁盘空间和文件数量。主要有两个类型的配额:...
本文将基于Mandrake Linux 9.1(Kernel 2.4.21)版本,详细介绍Linux中必学的60个命令,分为六类:安装和登录命令、文件处理命令、系统管理相关命令、网络操作命令、系统安全相关命令以及其它常用命令。 #### 二、...
在 Linux 7/CentOS 7 中,LVM 管理和磁盘配额是两个重要的概念,本文将对这两个概念进行详细的介绍。 一、LVM 逻辑卷管理 LVM 机制的基本概念包括 PV、VG 和 LV。 1. PV(Physical Volume,物理卷):物理卷是 ...
Linux下的磁盘配额是Linux操作系统中的一项重要功能,它可以帮助管理员更好地管理磁盘资源,避免磁盘空间的浪费和误用。但是,磁盘配额的配置需要满足一定的要求,并且需要遵循一定的步骤。只有正确地配置磁盘配额...
标题提到的是“Linux系统管理员工具包监视磁盘空间和使用情况”,这个主题主要关注的是Linux系统中如何管理和监控磁盘空间,确保系统的稳定运行。描述中提到,这篇文章旨在帮助系统管理员了解如何监视和管理磁盘空间...
本文将详细介绍部分常用的Linux命令,包括它们的基本用法、格式以及应用场景。 #### 安装和登录命令 1. **login**:用于登录Linux系统,适用于所有用户。通过`login`命令,用户可以在系统中输入自己的用户名和密码...