刚才上传了一份磁盘配额的配置过程,但是这个不过是很简单,真实在企业中,如果要求你配置磁盘配额的话,大概的步骤肯定是如此,但是,一个企业如果是大型的话,不可能只要你限制一个用户,可能几个,可能十几个,或者几十个,甚至,几千个,正如现在网盘,为什么能对每个用户都可以做到限制,是因为管理员勤奋一个个添加吗?当然不是,如果真是如此,那个管理员估计忙到夜晚都搞不定,就像腾讯的用户注册,每天上千人注册估计不是不可能的,那你就需要做上千次的重复限制,这样多恐怖啊,没人会喜欢这么工作吧!当然了,不可能有人喜欢,再linux中,有一种方法,可以非常快速的来进行设置,就是用到了相关的循环

循环是好东西,确实是好东西啊,为什么呢?有点程序编程的人都知道循环的好处,当然了,你不循环也可以,只是,老板知道了你用这么原始的方法,估计对你印象也好不了那里去,更别提技能提升了

废话说了那么多,进入正题吧,我再这里就直接写出配置过程了,因为其实,写的循环确实不是很复杂,甚至是简单

我们都知道,UID>500的开始,就是属于普通用户的类型,那么,就可以利用这个点,从passwd读取出用户,怎么读?

首先,我们需要用getent来获取数据库数据,然后用awk来操作,把UID>500普通账号提取出来,具体如下

[root@localhost ~]# getent passwd |awk -F:  '{if ( $3 >= 500 ) { print $1}}'
nfsnobody
jackicy
zhang3
student
 

通过如此,我们可以确定出,我们这种做法是可行的,接着,就要对磁盘进行配额了,怎么进行?看我给你道来:

这个是edquota的做法:

[root@localhost ~]# getent passwd |awk -F: '{if ( $3 >= 500) { print $1}}'\
> |xargs edquota -p zhang3
[root@localhost ~]# repquota -a
 

这个时候,你去看看你的jackicy用户


[root@localhost ~]# edquota -u jackicy
Disk quotas for user jackicy (uid 500):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/hdb5                         0        200        400          0        5       10
 

见到没,就会以zhang3的模板为例,克隆了出来,再这里,需要讲解一下一些参数

xargs :这个是传递参数的用法,也就是第一行我们找出这些用户之后,将这些用户传递给zhang3这边

 edquota -p zhang3  :这个的意思是zhang3为模板调用到其他用户的意思,-p一定要

当然了,做好这个之后,我们需要做另外一个事情是什么呢?寄信给用户,告诉他(她),你的容量爆了,兄弟,别放那么多文件进去,那怎么做呢,这个发邮件的功能在/etc/warnquota.conf中进行更改,现在,把配置修改呈现给大家看看

但是,实际上,用系统自带的这个文件,很多用户可能看不懂英文是什么内容,这样就造成了一定的麻烦,所以自己定制一个邮件,是最恰当不可的了,那么怎么制定了,不需要自己重新写太多的内容,只需要对配置文件修改一下,如下:

[root@localhost ~]# cp /etc/warnquota.conf ~/mywarnquota.conf
[root@localhost ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mywarnquota.conf
[root@localhost ~]# vi mywarnquota.conf


MAIL_CMD        = "/usr/sbin/sendmail -t"
FROM            =
SUBJECT         = 注意,你已经超出磁盘配额的限制了
CC_TO           = "jackicy@localhost"
SUPPORT         = "jackicy@myhost.com"
PHONE           = "15218819110"
MESSAGE         = 亲爱的同事\
由于网络改建,你的磁盘容量已经塞满,请尽快处理不需要文件,以免造成文件的丢失\
有什么问题请咨询上述电话,谢谢:|
SIGNATURE       =jackicy@localhost

[root@localhost ~]# vi mywarnquota.conf
[root@localhost ~]# warnquota -c ~/mywarnquota.conf
 

好了,今天就写到这里了,至于怎么自动话处理,我们后期在讲