博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高级文件系统管理--系统配额
阅读量:5089 次
发布时间:2019-06-13

本文共 7485 字,大约阅读时间需要 24 分钟。

一、配置配额系统:

综述:

磁盘配额的作用范围:

    quota软件设置的磁盘配额功能,只在指定的文件系统分区中有效,用户使用其他未设置配额的文件系统时,将不会受到限制;

磁盘配额的限制对象:

    quota主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。

磁盘配额的限制类型:

硬盘容量:限制用户能够使用的磁盘数据块(block)大小,也就是限制磁盘空间大小,默认单位为KB。

文件数量:限制用户能够拥有的文件个数。quota通过限制i节点的数量来实现对文件数量的限制。

磁盘配额的限制方法:

软限制:制定一个软性的配额数值(如 480MB、180个文件),在固定的宽限期内(默认为七天)允许用户暂时超过这个限制,但系统会给出警告信息。

硬限制:指定一个硬性的配额数值(如 500MB、200个文件),时绝对禁止用户超过这个限制值得,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制的值,否则软限制将失效。

1、以支持磁盘配额功能的方式挂载文件系统:

除了内核和quota软件支持外,实施磁盘配额功能还有一个前提条件,即指定的分区必须已经挂载且支持磁盘配额功能。

让分区支持磁盘配额选项:

     usrquota选项:支持对用户的磁盘配额;

     grpquota选项:支持对组的磁盘配额;

示例:

在配置磁盘配额过程中,可以使用带”-o usrquota grpquota” 选项的mount命令重新挂载指定的分区以便增加对用户、组配额功能。

     mount  -o usrquot,grpquota  /dev/sdb1 

若需要在每次系统开机后自动以支持磁盘配额的功能方式挂载该分区,可以将usrquot和grpquota选项参数写到/etc/fstab配置文件中。   

[root@centos7 ~]# vim /etc/fstab/dev/sdb1   /home    ext4    defaults,usrquota,grpquota  0  0[root@centos7 ~]#mount  -a

2、检测磁盘配额并生成配额文件:

         quotacheck命令:

               -a:表示扫描所有分区,查看是否有较早版本的配额文件;

               -c:常与u,g选项配合使用,创建用户、组的配额文件;

示例:          

[root@centos7 ~]# quotacheck -cug /home

查看在/home目录下生成的用户配额文件和组配额文件:           

[root@centos7 ~]# file aquota.*aquota.group: dataaquota.user:  data

开启或者取消磁盘配额功能:

              quotaon :开启磁盘配额

              quotaon  -p 查看是否开启磁盘配额;

              quotaoff :关闭磁盘配额

示例:

查看是否开启磁盘配额:           

[root@centos7 ~]# quotaon -p /homegroup quota on /home (/dev/sdb1) is offuser quota on /home (/dev/sdb1) is off

开启磁盘配额:            

[root@centos7 ~]# quotaon /home

关闭磁盘配额:           

[root@centos7 ~]# quotaoff /home

     3、编辑用户和组的账号的配额设置:

               edquota命令:结合-u和-g选项可用于编辑用户或组的配额设置;

(1)edquota  -u  username

(2)直接在shell命令行编写(适合编写shell脚本使用)

                setquota  username  500000  600000   1500 2000  /filesystem

示例:            

root@centos7 ~]# setquota   zhangsan  500000 600000  1500 2000 /home

(3)定义标准的用户 (相当于copy  user1的磁盘配额给user2)

                edquota  -p  user1  user2

示例:

[root@centos7 ~]# edquota -p zhangsan fan

示例:

为用户zhangsan编辑磁盘配额:             

[root@centos7~]# edquota -u zhangsanDisk quotas for user zhang (uid 1000):Filesystem      blocks    soft  hard        inodes     soft     hard/dev/sdb1       0    500000   600000       0       1500     2000

在edquota的编辑界面中,各字段分别代表的含义如下:

           Filesystem:表示本行配置记录对应的文件系统,即配额的作用范围;

           blocks:表示用户已经使用的磁盘容量,单位为KB,该值由edquota自动计算;

           soft:第3列的soft对应为磁盘容量的软限制数值;

           hard:第4列的hard对应为磁盘容量的硬限制数值;

           inodes:表示用户当前已经拥有的文件数量,(i节点数)有edquota自动计算;

           soft:第6列的soft对应为文件数量的软限制数值;

           hard:第7列的hard对应为文件数量的硬限制数值;

测试磁盘配额:

综上可知我们为用户zhangsan设置的磁盘硬限制是600MB,这是我们dd一个650MB的文件,这时我们已经看到拒绝写入数据了。       

[zhangsan@centos7 ~]$ dd if=/dev/zero of=/home/zhangsan/bb  bs=1M count=650           sdb1: warning, user block quota exceeded.           sdb1: write failed, user block limit reached.  (写入失败,磁盘配额空间已满)           dd: error writing ‘/home/zhangsan/bb’: Disk quota exceeded           586+0 records in           585+0 records out           614371328 bytes (614 MB) copied, 0.800515 s, 767 MB/s           [zhangsan@centos7 ~]$ du -sh /home/zhangsan/bb           586M /home/zhangsan/bb           [zhangsan@centos7 ~]$

使用quota命令查看用户zhangsan的磁盘使用情况:    

[root@centos7 ~]# quota zhangsanDisk quotas for user zhangsan (uid 1000):Filesystem  blocks   quota   limit   grace   files   quota   limit   grace/dev/sdb1  600000* 500000  600000   7days      15    1500    2000        [root@centos7 ~]#

使用repquota命令查看/home文件系统的配额使用情况报告:     

[root@centos7 ~]# repquota /home  Report for user quotas on device /dev/sdb1  Block grace time: 7days; Inode grace time: 7days                         Block limits                File limits User            used    soft    hard  grace    used  soft  hard  grace root      —      14       0       0              7     0     0        zhangsan     +-  600000  500000  600000  6days      15  1500  2000         fan      —      14  500000  600000              7  1500  2000         root     —      14  500000  600000              7  1500  2000         [root@centos7 home]#

配置磁盘配额使用的命令总结:

          usrquota、grpquota

          quotacheck

          quotaon  quotaoff

          edquota  setquota

          quota    repquota

          warnquota (磁盘配额报警软件,可以邮件通知)

ext系列文件系统的quota

    1.开启quota(ext、xfs)

[root@centos6 ~]#vim /etc/fstab

在需要开启quota的文件系统的挂载选项的defaults后加usrquota,grpquota如下

/dev/sda5  /backup                   ext4    defaults,usrquota,grpquota        1 0

  2.生成quota数据库 

[root@centos6 ~]#quotacheck -cugm /backup/

  3.开启quota 

[root@centos6 ~]#quotaon    /backup

quota

         -v 显示当前用户自己的quota限额
         -v username 显示指定用户的quota限额 仅限root
     repquota -v /backup 显示所有用户的quota限额(仅限用户在该目录有所属的文件) 仅限root

[root@centos6 ~]#repquota -v /backup/*** Report for user quotas on device /dev/md126Block grace time: 7days; Inode grace time: 7days                        Block limits                File limitsUser            used    soft    hard  grace    used  soft  hard  grace----------------------------------------------------------------------root      --    1284       0       0              3     0     0       sunquan   --       0   40960   51200              0     0     0      Statistics:Total blocks: 7Data blocks: 1Entries: 2Used average: 2.000000

   4.配置quota

     edquota -u/g username/groupname
         edquota -u liubei
         edquota -g shuguo

    或非交互式

[root@centos6 ~]# setquota -u[default] |-g  username|groupname 10M 20M 5 20 /backup [root@centos6 ~]#setquota -u liubei 0 0 0 0 /backup [root@centos6 ~]# setquota -g shuguo 10M 20M 50 100 /backup [root@centos6 ~]#edquota -p liubei zhangfei  将liubei的quota设置复制给zhangfei

注意:对group设置quota时,应该对附加组设置,同时,目录要设置sgid权限才有意义

xfs文件系统的quota

     1.开启quota(ext、xfs)
     vim /etc/fstab
     在需要开启quota的文件系统的挂载选项的defaults后加usrquota,grpquota如下
     /dev/sda5  /app                    ext4    defaults,usrquota,grpquota        1 0

    一定要卸载再挂载才生效

     2.配置
     xfs_quota -x -c "print" 查看当前系统中所有的xfs文件系统哪些开启了quota

[root@localhost ~]# xfs_quota -x -c "print"  Filesystem          Pathname /                   /dev/mapper/centos-root /backup             /dev/md0 (uquota, gquota) /app                /dev/mapper/centos-app /boot               /dev/sda1

  xfs_quota -x -c "report -ugibh"  /backup查看quota设置

[root@localhost ~]# xfs_quota -x -c "report -ugibh" /backup/ User quota on /backup (/dev/md0)                         Blocks                            Inodes               User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace   ---------- --------------------------------- ---------------------------------  root            0      0      0  00 [0 days]      3      0      0  00 [------] sunquan         0    40M    50M  00 [------]      0      0      0  00 [------]Group quota on /backup (/dev/md0)                         Blocks                            Inodes               Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace   ---------- --------------------------------- ---------------------------------  root            0      0      0  00 [------]      3      0      0  00 [------]

        -u 查看用户的

         -g 查看组的
         -i 查看inode
         -b 查看block (默认)
         -h human-readable
         默认是-ug
         ***-uibh
     xfs_quota -x -c "state" /backup 查看qutoa状态,显示grace time时间

[root@localhost ~]# xfs_quota -x -c "state" /backup/ User quota state on /backup (/dev/md0)   Accounting: ON   Enforcement: ON   Inode: #67 (2 blocks, 2 extents) Group quota state on /backup (/dev/md0)   Accounting: ON   Enforcement: ON   Inode: #68 (2 blocks, 2 extents) Project quota state on /backup (/dev/md0)   Accounting: OFF   Enforcement: OFF   Inode: #68 (2 blocks, 2 extents) Blocks grace time: [14 days] Inodes grace time: [7 days] Realtime Blocks grace time: [7 days]

     xfs_quota -x -c "limit -u bsoft=30M bhard=40M liubei" /backup

     对用户设置quota
     xfs_quota -x -c "limit -g bsoft=50M bhard=100M shuguo" /backup
     对组设置quota
     xfs_quota -x -c "timer -u -b 14days" /app
     设置quota grace time

    获取帮助

     xfs_quota -x -c "help limit"
     xfs_quota -x -c "help report"

 

转载于:https://www.cnblogs.com/f-h-j-11-7/p/9459884.html

你可能感兴趣的文章
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
测试计划
查看>>
Mysql与Oracle 的对比
查看>>
jquery实现限制textarea输入字数
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
jenkins常用插件汇总
查看>>
c# 泛型+反射
查看>>
第九章 前后查找
查看>>
Python学习资料
查看>>
jQuery 自定义函数
查看>>
jquery datagrid 后台获取datatable处理成正确的json字符串
查看>>