linux的磁盘配额
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的磁盘配额相关的知识,希望对你有一定的参考价值。
参考技术A 在前面的博文中我们介绍了samba服务的安装和修改配置文件来设置samba服务。但在windows下是可以通过磁盘配额来管理文件服务器的,在linux中,也可以设置磁盘配额来管理文件服务器,而且配置更容易,更简单。我们先大概说明一下磁盘配额的基本步骤,以便在随后的讲解更容易明白。
1.检查软件包是否安装。
2.编辑文件系统文件
3.重启计算机
4.生成磁盘配额文件
5.针对用户或者组做磁盘配额
6.启动磁盘配额
步骤挺多,但可以看出来真正要操作的无非是2.3个步骤,所以也是非常方便的。下面我们就来看一下做linux磁盘配额的具体步骤。
1
rpm
-qa|grep
quota
(查看quota软件包是否被安装过)
2.vi
/etc/fstab
(我们这里在第一行里改,说明我们是对/目录做磁盘配额)
3.重新启动计算机,我们修改了文件系统文件,但其实并没有生效,只有重新启动计算机的时候让计算机重新加载文件系统才会生效。而且在重新启动的过程中会报错,因为没有磁盘配额的配置文件。重新启动的命令是:reboot
4.既然显示没有磁盘配额的配置文件,我们这里就用quotacheck
-cumg
/命令来生成磁盘配额文件。我们先ls
/
并看不到有磁盘配额的配置文件,使用quotacheck
-cumg命令后可以看到以下两个配置文件。
5.现在我们的准备工作就已经做好了。我们现在开始对用户或者组做磁盘配额。
我们这里就新建一个用户test来做测试。
useradd
test
使用这个命令来做用户的磁盘配额:edquota
-u
test
回车后会进入这样一个配置文件。
对数字进行编辑后,我们就进入第6部
6.quotaon
-av
启动磁盘配额。
这样,磁盘配额就做好了。
我们还可以通过quota+用户名
来查看用户的磁盘配额情况。
并且在系统默认设置的时间后,系统会自动清楚软限制和硬限制中间所包含的容量。我们可以通过edquota
-t
来设置软限制的时间.
这样,我们就可以通过samba的配置文件和磁盘配额来完善我们的文件服务器了。
Linux入门之磁盘管理磁盘配额
Linux入门之磁盘管理(6)磁盘配额
在linux中使用向磁盘中存入数据时,如果有多个用户对同个磁盘进行操作,其中一个用户放了很大数据的文件导致硬盘容量用光,那么其他用户将无法再存入数据,这时就需要对每个用户进行存入数据大小的限制,linux中提供了一种磁盘配额的功能来实现。
初始化:
添加分区挂载选项:usrquota、grpquota
初始化数据库:quotacheck 命令
使用命令
开启或取消配额:quotaon、quotaoff
直接编译配额:edquota [username]
案例说明:
创建配额数据库
#/home目录会存放不同用户的文件,大小会相互受影响,因此需要将/home目录变成分区,这里准备好一个创建好文件系统的分区。
[[email protected] ~]# blkid /dev/sda5 /dev/sda5: LABEL="myhome" UUID="97f71277-7b31-4bb6-ae0f-949cf8c18e6f" TYPE="ext4"
#对其进行挂载使用
[[email protected] ~]# mkdir /mnt/myhome [[email protected] ~]# mount /dev/sda5 /mnt/myhome/ [[email protected] ~]# df | grep ‘myhome‘ /dev/sda5 2004852 3096 1896584 1% /mnt/myhome
#先将/home下文件的文件进行迁移
[[email protected] ~]# ls /home/ hadoop mzf tom u1 u2 [[email protected] ~]# mv /home/* /mnt/myhome/ [[email protected] ~]# ls /mnt/myhome/ hadoop lost+found mzf tom u1 u2
#然后将/dev/sda5再次挂载到/home目录下,并添加用户和组的磁盘配额功能
[[email protected] ~]# mount -L myhome -o usrquota,grpquota /home/ [[email protected] ~]# df | grep ‘home‘ /dev/sda5 2004852 3288 1896392 1% /mnt/myhome /dev/sda5 2004852 3288 1896392 1% /home
#卸载掉在/mnt/myhome下的挂载点
[[email protected] ~]# umount /mnt/myhome/
#这里我们再次挂载指定的用户磁盘配额和组磁盘配合选项以及添加
[[email protected] ~]# mount | grep ‘home‘ /dev/sda5 on /home type ext4 (rw,usrquota,grpquota)
#当然也可以写入/etc/fstab文件进行重新挂载。如,加入内容:
[[email protected] home]# cat /etc/fstab | grep ‘/home‘
#然后检查分区并创建配额数据库文件
[[email protected] home]# quotacheck -cgu /dev/sda5 quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied quotacheck: Cannot initialize IO on new quotafile: Permission denied quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied quotacheck: Cannot initialize IO on new quotafile: Permission denied
解析:这里提示没有权限,可能是linux内核中默认开启的selinux安全机制控制导致的,这里我们可以先将其关闭:
#查看当前setlinux是否开启
[[email protected] home]# getenforce Enforcing#表示已经启用 [[email protected] home]# setenforce 0 #设置参数为0表示禁用 [[email protected] home]# getenforce #再次查看已经显示为禁用 Permissive
#再次进行磁盘配额数据库文件创建
[[email protected] home]# quotacheck -cug /dev/sda5
#查看指定分区单独挂载点目录下是否生成了磁盘配额数据库文件
[[email protected] home]# ls /home | grep ‘^aquota\.\<\(user\|group\)\>‘ aquota.group aquota.user
说明:如果要开启磁盘配额,内核模块必须检查该挂载点中是否有磁盘配额数据库文件的存在,否则无法开启或设置成功。
启用磁盘配额:
#开启指定分区的磁盘配额
[[email protected] home]# quotaon /dev/sda5
#添加默认磁盘配额成员
[[email protected] home]# edquota -p mzf tom hadoop
#设置指定成员配额
[[email protected] home]# edquota hadoop
#进入vim编辑界面
解析:其中第一行表示为哪个用户设置磁盘配额,下面分为多列,第一列为指定的文件系统,后面6列每3列为一组,blocks表示已经存放的文件大小,默认为k,indodes表示为已经创建了多少个文件,soft表示为软限制,存放大小超过soft指定将出现警报,hard为硬限制,如果达到此限制,将无法再次写入数据。
#按文件所占大小设置配额,软限制为5M,硬限制为10M
#切换到设置配额的成员hadoop用户
[[email protected] home]# su - hadoop
#此目录已经用了64K,这里我们添加 5M数据
[[email protected] ~]$ dd if=/dev/zero of=/home/hadoop/temp.log bs=5M count=1 sda5: warning, user block quota exceeded. 1+0 records in 1+0 records out 5242880 bytes (5.2 MB) copied, 0.130323 s, 40.2 MB/s
注意:这里soft已经超过,开始了警报,显示用户块数据配额,但是如果使用echo进行一些小规模数据追加,磁盘配额是不会警报的:
#显示出文件多少个字节
[[email protected] ~]$ ls -l /home/hadoop/temp.log -rw-rw-r--. 1 hadoop hadoop 5242912 Aug 17 23:51 /home/hadoop/temp.log
#追加字节
[[email protected] ~]$ echo "***************" >> /home/hadoop/temp.log
#再次显示大小已经增加,但是磁盘配额没有警报
[[email protected] ~]$ ls -l /home/hadoop/temp.log -rw-rw-r--. 1 hadoop hadoop 5242928 Aug 17 23:51 /home/hadoop/temp.log
解析:如果再用dd命令对temp.log文件写入5M是无法写入的,那么再写一个5M的新文件进行测试:
#再创建一个5M,那么应该已经达到了10M
[[email protected] ~]$ dd if=/dev/zero of=/home/hadoop/temp2.log bs=5M count=1 sda5: write failed, user block limit reached. dd: writing `/home/hadoop/temp2.log‘: Disk quota exceeded 1+0 records in 0+0 records out 5185536 bytes (5.2 MB) copied, 0.00903 s, 574 MB/s
解析:这里已经显示了写入数据错误,数据块配额已经被使用完
#这时写入一个字节内容的文件都写入不了了。
[[email protected] ~]$ echo "1" > file1 -bash: echo: write error: Disk quota exceeded
其它磁盘配额管理工具
quota 查看配额信息
[[email protected] home]# quota hadoop Disk quotas for user hadoop (uid 502): Filesystem blocks quota limit grace files quota limit grace /dev/sda5 10240* 5120 10240 6days 17 0 0
解析:grace表示为宽限期,及文件大小到到soft指定大小6天后,soft将变成硬限制,将再也无法创建文件和写入数据了。
requota #查看指定信息
warnquota #检查警告
本文出自 “神剑特兰克斯” 博客,请务必保留此出处http://mengzhaofu.blog.51cto.com/10085198/1844491
以上是关于linux的磁盘配额的主要内容,如果未能解决你的问题,请参考以下文章