介绍:
Linux是多用户多任务的操作系统,这就难免出现多个用户共享磁盘的情况,如何使多个用户公平的使用磁盘,就是磁盘配置要解决的问题。当然也可以在每创建一个用户的时候,将它的主目录建在一个单独的逻辑分区上,但是这样太麻烦了,也不灵活。
本文以针对用户的磁盘配额配置为例,演示磁盘配额的配置流程。
操作步骤:
1、安装quota软件包
[root@localhost ~]# yum install -y quota
2、给指定分区开启磁盘配额功能
编辑/etc/fstab(此文件负责记录文件系统信息)
[root@localhost ~]# vim /etc/fstab
如下图(看第一个分区),给想要开启磁盘配额的分区的挂载方式后面加上,usrquota,grpquota,其中usrquota是开启用户磁盘限额,grpquota是开启组磁盘限额。
保存并退出此文件后配置并未生效,还需要重新挂载磁盘。
[root@localhost ~]# mount -o remount /
3、扫描所有支持磁盘配额的分区并在其根目录生成相应的配置文件
[root@localhost ~]# quotacheck -avugm
上面的命令中,参数a 扫描/etc/fstab中所有支持磁盘配额的分区,v 显示指令执行过程,u 生成用户磁盘配额配置文件,g 生成组用户配置文件,m 强制扫描(有的时候不加m会报错,最好加上)。
记得把selinux关上再执行此命令。
执行完可以查看下分区挂载的目录中出没出现aquota.group(组磁盘配额配置文件)、aquota.user(用户磁盘配额配置文件)这两个配置文件,有就代表成功了。
当然这两个文件不一定都有,因为你有可能在执行命令的时候指定只生成用户磁盘配额配置文件,那就看不到组磁盘配额配置文件了。
4、为用户/组设置磁盘配额大小
[root@localhost ~]# edquota -u 接用户名 //为用户配置磁盘配额 [root@localhost ~]# edquota -g 接组名 //为组配置磁盘配额
命令执行后会自动使用vi/vim文本编辑器打开对应配置文件,下面是对此配置文件中各个区域的解释(顺序,从左到右)。
Filesystem 文件系统 blocks 已经使用的块数(块的单位为1K) soft 块数软限制,0表示禁用 hard 块数硬限制,0表示禁用 inodes 已经创建的文件个数,如果后面有*表示已经超出软限制 soft 创建的文件个数的软限制,0表示禁用 hard 创建的文件个数的硬限制,0表示禁用
其中软限制的额度在达到后会弹出警告,如果用户在宽限期(默认7天)内还未删除超出部分的文件,软限制就会转为硬限制,阻止用户继续写入数据。
可以通过如下命令修改宽限期。
[root@localhost ~]# edquota -t
如上图可以看到,Block grace period(块的宽限期)对应值是7days(七天),Inode grace period(文件数量的宽限期)对应值也是7days(7天),这里直接修改对应值即可。上图中因为我的设备名称比较长,所以文字排版乱了,导致值和选项没有对应起来,但不影响其生效。
修改后保存并退出。
此外,所涉及到容量的配置部分的计算单位都是KB,比如上图中容量的hard值我设置成了20480,这个数值的单位就是KB,可以换算成20MB。
修改后,保存并退出。
如果有多个账户需要设定相同的磁盘配额则可以使用edquota搭配-p参数实现,例如:
[root@localhost ~]# edquota -p user1 user2 将user1的磁盘配额配置复制给user2。
5、开启磁盘配额功能
quotaon 接需要开启磁盘配额功能的分区所挂载的目录,例如本实验中分区挂载到了根目录,则执行如下命令开启该分区的磁盘配额。
[root@localhost ~]# quotaon /
关闭磁盘配额:
[root@localhost ~]# quotaoff /
6、测试
切换为被设置了磁盘配额的用户身份,本实验中是user1。
[root@localhost ~]# su - user1
进入用户邮箱目录(本实验中/var/mail目录存在于根目录所挂载的磁盘上,所以根目录的磁盘限额对其有效)。
[root@localhost ~]# cd /var/mail
写1G的数据到user1的邮箱中。
[root@localhost mail]# dd if=/dev/zero of=user1 bs=1M count=1000
可以看到,弹出提示说超出磁盘限额了。
查看下user1用户的邮箱现在的大小,正好是20MB。
[root@localhost mail]# ll -h user1
最后记得清空邮箱中的数据哦。
[root@localhost mail]# echo '' > user1
感谢楼主的分享
博主,你好,boke112导航特来拜会,已将贵站收录到博客导航的建站技术类,谢谢支持!