磁盘配额

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘配额相关的知识,希望对你有一定的参考价值。

磁盘配额

Linux系统中一般都是多用户同时进行,多个用户使用同一块磁盘会不会发生一个很尴尬的事情。用户A大量使用磁盘空间,等到B使用的时候没怎么用就满了。这不就尴尬了,对于B用户来说也很不公平。

那么今天就说说在linux中的磁盘配个是个什么鬼东西,在所支持quota下的linux系统才能使用磁盘配额哦QWQ

磁盘配额大意是指可以限制每个用户使用多少空间,若使用超过多少会提醒,超过多少会禁止用户使用。

但是这个限制是依据文件系统(可以说是某个分区),而不是某个目录(其实挂载到某个目录下不也是对某个目录的限制,纯属个人瞎扯0.0)这个所谓的限制又可以分为inodeblock限制,简单的来说就是限制文件数量或者磁盘使用的大小。

这里的限制参数有两个,一个是softhard。超过soft会报警但还可以使用,一旦超过hard值那就GG(不能使用了)。比如这里还要提及一个时间的设定那就是一但报警超过设定时间直接也是不能使用。一会儿下面会提及到。。。QAQ

重点来了,瞎掰扯了半天一点有用的都没有,那就实验一波看看到底怎么个用法。

在这里本人就先创建两个测试用户来试一波这个功

[[email protected] ~]# 
Display all 2840 possibilities? (y or n)
[[email protected] ~]# useradd test1 
[[email protected] ~]# echo "test1" | passwd --stdin test1
Changing password for user test1.
passwd: all authentication tokens updated successfully.
[[email protected] ~]# useradd test2
[[email protected] ~]# echo "test2" | passwd --stdin test2
Changing password for user test2.
passwd: all authentication tokens updated successfully.

然后再我的linux下有一个/dev/sdb1分区我就把他挂载到/home家目录下来测试多用户使用/home家目录时超额会发生神马情况,

[[email protected] ~]# mount /dev/sdb1 /home/      >>  挂载也没什么好多说的了

如果只是想在本次开机实现配额那只需要

[[email protected] ~]# mount -o remount,usrquota /home
[[email protected] ~]# mount | grep home
/dev/sdb1 on /home type ext4 (rw,usrquota)
[[email protected] ~]#

 然后直接执行一条命令自动扫描含有usrquota命令的文件系统,就是我们上面设置的

接下来就是检查命令quotacheck

-u :针对用户扫瞄档案不目弽的使用情况,会建立 aquota.user

-g :针对群组扫瞄档案不目弽的使用情况,会建立 aquota.group

-v :显示扫瞄过程的信息;

-f :强制扫瞄文件系统,幵写入新的 quota 配置文件 (危险)

-M :强制以读写的方式扫瞄文件系统,只有在特殊情况下才会使用

[[email protected] etc]# quotacheck -avu
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/home] done
quotacheck: Cannot stat old user quota file /home/aquota.user: No such file or directory. Usage will not be subtracted.
quotacheck: Old group file name could not been determined. Usage will not be subtracted.
quotacheck: Checked 3 directories and 0 files
quotacheck: Old file not found.

接下来就是开启这个功能    (既然on是开启   那不用想off就是关闭该功能了只加一个a选项就行)
[[email protected] etc]# quotaon -auv
/dev/sdb1 [/home]: user quotas turned on
[[email protected] etc]#

上面的都是前戏,接下来就是具体的设置了

[[email protected] etc]# edquota -u test1

Disk quotas for user test1 (uid 1011):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                        28          0          0          7        0        0
~                                                                                                                                                   
~                                                                                                                                                   
~                                                                                                                                                   
~                                                                                                                                                   
~

上面是输入edquota代码之后的脚本,在里面修改参数。用户test2也是如此  下面就是我设置之后的脚本

Disk quotas for user test2 (uid 1012):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sdb1                        28         50        100          7        0        0
~

上面block参数是KB(系统默认)只是举个例子,实际参数这样设置太小。

还有就是报警的时间命令为edquota -t

[[email protected] etc]# 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/sdb1                     7days                  7days
~                                                                                                                                                   
~                                                                                                                                                   
~                                                                                                                                                   
~

上面设置soft,hard和时间都是执行命令进入文档来修改文档。

设置完毕后用quota -uvs  跟用户名来查看设置的情况

quota  -u 后跟用户名显示quota限制值可以跟一个或多个   -v显示每个用户在文件系统的限制值 -s用单位表示
限制值大小比如M   -g  跟用户组
[[email protected] etc]# quota -uvs test1
Disk quotas for user test1 (uid 1011): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1     28K     50K    100K               7       0       0        
[[email protected] etc]#

上面也可以规整一个repquota -avus  (查看全局)

[[email protected] etc]# quota -uvs test1
Disk quotas for user test1 (uid 1011): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1     28K     50K    100K               7       0       0        
[[email protected] etc]# requota -aus
bash: requota: command not found...
[[email protected] etc]# repquota -avus
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --     20K      0K      0K              2     0     0       
test1     --     28K     50K    100K              7     0     0       
test2     --     28K  50000K 100000K              7     0     0       

Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000

[[email protected] etc]#

到此为为止就该测试一波了看看效果怎么样

我在test1下创建个文件大小1M   刚才设置最大1M
[[email protected] ~]$ dd if=/dev/zero of=new bs=1M count=1M
sdb1: warning, user block quota exceeded.
sdb1: write failed, user block limit reached.   > 直接报错 磁盘满了写不进去
sdb1: write failed, user block limit reached.
dd: error writing ‘new’: Disk quota exceeded
1+0 records in
0+0 records out
49152 bytes (49 kB) copied, 0.00172157 s, 28.6 MB/s
[[email protected] ~]$ ls
new

看来这次虽然马马虎虎,还是成功了test2就不测试了效果也是一样的。如果要开机启动,下次开机还有那就写到/etc/fstab文件里。具体就man一下看看man文档找有路径的字眼就好。。

到这里简单的配置磁盘配额就完了还是比较简单的QAQ

本文出自 “mlon客” 博客,请务必保留此出处http://13154101.blog.51cto.com/13144101/1957676

以上是关于磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章

linux的磁盘配额

linux使用磁盘配额管理

磁盘配额

centos7的磁盘配额有啥特点

磁盘配额实验

22磁盘管理—磁盘配额详解