zoukankan      html  css  js  c++  java
  • Linux用户磁盘配额

    一:内核中支持QUOTA:
    [root@localhost /]# grep  CONFIG_QUOTA /boot/config-3.10.0-123.el7.x86_64
    CONFIG_QUOTA=y
    CONFIG_QUOTA_NETLINK_INTERFACE=y
    # CONFIG_QUOTA_DEBUG is not set
    CONFIG_QUOTA_TREE=y
    CONFIG_QUOTACTL=y
    CONFIG_QUOTACTL_COMPAT=y
    如果有上列输出,则表示当前内核已经支持quota。
    二:修改/etc/fstab加入QUOTA支持:
    [root@localhost /]# vim /etc/fstab 
    /dev/sdb1       /dvd    xfs     defaults,usrquota,grpquota    1      2
    三:使用quotacheck初始化QUOTA数据库:
    因为quotacheck依据/etc/mtab搜索文件系统,所以要将刚刚修改的/dev/sdb1重新挂载
    [root@localhost /]# mount /dvd -o remount       
    [root@localhost /]# mount
    proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
    devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=926912k,nr_inodes=231728,mode=755)
    securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
    devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
    tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
    tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,seclabel,mode=755)
    cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
    pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
    cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
    cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
    cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
    cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
    cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
    cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
    cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
    cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
    cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
    configfs on /sys/kernel/config type configfs (rw,relatime)
    /dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
    systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=32,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
    hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
    debugfs on /sys/kernel/debug type debugfs (rw,relatime)
    mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
    sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
    sunrpc on /proc/fs/nfsd type nfsd (rw,relatime)
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/sdb1 on /dvd type ext2 (rw,relatime,seclabel,quota,usrquota,grpquota)

    [root@localhost /]# quotacheck -avug
    quotacheck: Quota for users is enabled on mountpoint /dvd so quotacheck might damage the file.
    Please turn quotas off or use -f to force checking.
    -a : 扫描所有在/etc/mtab中开启quota的文件系统
    -v : 显示扫描过程
    -u : 扫描所有user quotas   (usrquota)
    -g : 扫描所有group quotas  (grpquota)

    四:启动QUOTA:(quotaon 为启动 quotaoff 为关闭)
    [root@localhost /]# quotaon -avug
    /dev/sdb1 [/dvd]: group quotas turned on
    /dev/sdb1 [/dvd]: user quotas turned on
    -a : 开启所有quota设定,根据/etc/mtab设定
    -v : 当开启quota时显示信息
    五:编辑用户磁盘限额:
    这里设定用户quota最大使用容量为20M,当使用到10M时会得到警告要求降低到10M最多可以创建10个文件,当创建5个文件时会得到警告要求降低到5个文件
    [root@localhost /]# edquota -u redhat(redhat为系统用户名称)
    Disk quotas for user redhat (uid 1000):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sdb1                         0              0          0           0              0        0
    改为
     
     
    Disk quotas for user redhat (uid 1000):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sdb1                         0         10240      20480        0         5          10
    -u : 编辑user的quota
    -g : 编辑group的quota
    -t : 编辑宽限时间
    -p : 复制quota资料到另一用户上

    blocks :目前使用者(quota:uid=5011)在/dev/hda7所使用的空间,单位:KB (不要修改)
    soft   :soft limit 磁盘空间限定值 单位:KB (需要设定)
    hard   :hard limit 磁盘空间限定值 单位: KB (需要设定)
    inodes :目前使用者使用掉的inodes,由于不容易使用inode控制,所以不要修改它。
    soft   :soft limit 文件限制数量  (根据需要修改)
    hard   :hard limit 文件限制数量   (根据需要修改)
    soft limit :最低限制容量,在宽限期(grace period)之内,使用容量可以超过soft limit,但必须在宽限期之内将使用容量降低到soft limit以下。
    hard limit :最终限制容量,如果使用者在宽限期内继续写入数据,到达hard limit将无法再写入。
    宽限时间:使用容量超过soft limit,宽限时间自动启动,使用者将容量降低到soft limit以下,宽限时间自动关闭,如果使用者没有在宽限时间内将容量降低到soft limit,那么他将无法再写入数据,即使使用容量没有到达hard limit 
    六.设定宽限时间:
    [root@localhost dvd]# 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

    [root@localhost dvd]# quota -uv redhat(-u : 显示user。-v : 显示quota值)
    Disk quotas for user redhat (uid 1000): 
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1       0   10240    20480               0            5       10        
    七.使用-p参数复制quota资料到另一个用户:
    [root@localhost dvd]# edquota -p redhat aaa  
    [root@localhost dvd]# quota -uv aaa
    Disk quotas for user aaa (uid 1001):
         Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
          /dev/sdb1       0     10240   20480               0          5      10        

    同时复制给多个用户:
    [root@localhost dvd]#edquota -p redhat`awk -F: '$3 >499 {print $1}' /etc/passwd`
    这样就将quota的磁盘配额资料复制给所有uid >499的用户(uid为500以上的用户通常为真实用户)
    八.系统启动时自动激活quota:
    可以加入到/etc/rc.d/rc.sysinit或/etc/rc.d/rc.local中,在结尾加上一行:/usr/sbin/quotaon -aug
    还要记得在系统关机/重启脚本(/etc/rc.d/rc[0,6]/)中加入关闭quota的语句:/usr/sbin/quotaoff -aug 
    九.查询磁盘配额:
    [root@localhost dvd]# repquota -a
    *** Report for user quotas on device /dev/sdb1
    Block grace time: 24:00; Inode grace time: 7days
                            Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    ----------------------------------------------------------------------
    root      --      20         0       0                        2     0     0       
    十.计划任务quotcheck:
    quotcheck用来扫描文件系统的磁盘用量,更新aquota.user,aquota.group保持quota记录档到最新的状态。因此最好在系统启动时执行或通过cron定期执行:
    每周六早七点执行一次:0 7 * * 6 /sbin/quotacheck -avug
  • 相关阅读:
    NanoHTTPD服务
    Pattern、Matcher的用法
    浅析protobuf应用
    Socket通信,基本方法介绍
    String常用处理方法
    什么是重做日志?
    控制文件数据字典视图
    删除控制文件
    使用当前副本恢复控制文件
    备份控制文件
  • 原文地址:https://www.cnblogs.com/wjb10000/p/5566787.html
Copyright © 2011-2022 走看看