读书人

Linux磁盘治理中quota命令介绍应用

发布时间: 2012-12-28 10:29:05 作者: rapoo

Linux磁盘管理中quota命令介绍应用
)[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??? ?===>? 自己找一个合适的分区来做实验,这里用/disk2Filesystem ? ? ? ? ??? 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/fstabLABEL=/ ? ? ? ???? ?/ ? ? ? ? ?????? ext3 ? ?? defaults?????????????????????????????????????1 1LABEL=/disk1 ?? /disk1 ? ??? ?ext3 ?? ? defaults???????????????????????????????? ??? ?1 2LABEL=/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 -avugquotacheck: Scanning /dev/hdb1 [/disk2] donequotacheck: 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 quser1Disk 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 -tGrace 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 quser2Disk quotas for user quser1 (uid 502):?? ? Filesystem ?blocks ? quota ???? limit ? grace ? files ? quota ? limit ? grace?? ? ?/dev/hdb1 ?? ? ?? 0 ?? 45000 ? ?50000 ? ? ? ? ? ???? ? ?0 ? ? ? 0 ? ? ? 0Disk 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 qgroupDisk 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 qgroupDisk 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 的动作!

读书人网 >UNIXLINUX

热点推荐